怎么实现敏感数据加密存储并可模糊检索

2022-08-12 12:53:18 +08:00
 faust24601

有做过等保定级的朋友吗,要求敏感信息要加密存储,但是业务中需要模糊检索,实在没有好的方案

4928 次点击
所在节点    程序员
28 条回复
aqqwiyth
2022-08-12 19:29:07 +08:00
电商的做法是做信息摘要实现查询

比如明文: v2ex.com
通过算法进行文本 摘要加密(v2) + 摘要加密(2e) + 摘要加密(x.)+....摘要加密(om) 两两结合成字符串进行查询.
得出一堆很长无意义的字符串

再对明文进行一次 完整的对称加密(如果有解密需要的话)


最终可以实现 类似 SQL 中 like %xx% 任意字符串的查询. 缺点是对低于 2 位以下的支持.
itemqq
2022-08-12 22:53:48 +08:00
数据不特别多的话,放到 SGX Enclave 里就行
kenvix
2022-08-13 00:36:29 +08:00
不一定要砍掉需求,能不能简化问题,把**任意**模糊搜索改成**分块局部**精确匹配?
netnr
2022-08-13 05:53:16 +08:00
MySQL 有 AES 加密解密函数,我们打算用这个来做,而且性能还蛮高的
wangritian
2022-08-13 07:37:31 +08:00
我的解决办法是 where aes_decrypt(from_base64(name), '自定义密码') like '张%'
为了单条查询也使用索引,在业务代码使用和 mysql 相同的加密算法,=查询时直接提交密文
unco020511
2022-08-13 15:19:08 +08:00
身份证和手机号可以把中间脱敏,匹配前面+后面就可以模糊搜索了呀
flyingghost
2022-08-15 01:59:11 +08:00
目前可行的方案:
1 ,脱敏后模糊搜索。138****1234 ,脱敏后存明文。
2 ,砍需求,只支持全文匹配,库里存全文的 hash 。搜索时按输入 hash 去匹配。
3 ,原文求前缀子串 /任意子串后 hash 入库存储。搜索时按输入 hash 去匹配。
777777
2022-11-16 11:45:31 +08:00
simhash

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX