V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ReinerShir
V2EX  ›  程序员

MD5 编码后的数据,如何做模糊查询?

  •  
  •   ReinerShir · 2022-11-16 10:40:24 +08:00 · 1918 次点击
    这是一个创建于 720 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如身份证号,用 MD5+SALT 编码后存储,但又要做模糊查询,该怎么解决呢?

    10 条回复    2022-11-16 19:54:38 +08:00
    lslvxy
        1
    lslvxy  
       2022-11-16 10:45:06 +08:00
    加个字段明文存一下
    Rache1
        2
    Rache1  
       2022-11-16 10:49:18 +08:00   ❤️ 1
    一看就是要做敏感信息保护的,参考站内已有的讨论吧

    https://v2ex.com/t/887563

    https://www.v2ex.com/t/872410
    dqzcwxb
        3
    dqzcwxb  
       2022-11-16 11:05:12 +08:00
    对称加密,权限隔离
    权限隔离指的是,看仓库的拿不到钥匙,有钥匙的进不了仓库
    wanguorui123
        4
    wanguorui123  
       2022-11-16 11:05:20 +08:00
    原文分段 hash ,匹配多个 hashcode
    shawndev
        5
    shawndev  
       2022-11-16 11:35:15 +08:00
    不要 md5+salt ,直接上 mongodb searchable encryption
    loading
        6
    loading  
       2022-11-16 11:38:39 +08:00   ❤️ 1
    身份证的话就不存后四位
    DefoliationM
        7
    DefoliationM  
       2022-11-16 11:46:01 +08:00
    全同态加密也许能行
    potatowish
        8
    potatowish  
       2022-11-16 13:34:47 +08:00 via iPhone
    常规方案就是按固定长度进行拆分后再加密
    ReinerShir
        9
    ReinerShir  
    OP
       2022-11-16 19:42:43 +08:00
    @wanguorui123
    @potatowish 这个我想过,比如身份证号 18 位,难道拆成 18 个 hash 字段存储吗? 这样效率太低了吧


    @lslvxy
    @dqzcwxb 限制加密必须不可逆
    CEBBCAT
        10
    CEBBCAT  
       2022-11-16 19:54:38 +08:00
    既然用了摘要算法,就不可能稳定地反推原数据。那么之前的历史数据是搜索不了了。除非你自己穷举一遍

    针对上面的前提,看看能不能说服需求方,把模糊搜索的功能改成根据省份、城市、出生日期分开按条件查找呢?

    这样的话又要存明文了,或者是近似明文。也许可以搜索一下金融巨鳄的做法?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3349 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:56 · PVG 18:56 · LAX 02:56 · JFK 05:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.