[已解决]php(laravel)框架,如何对加密后的数据进行搜索(关键字搜索)
1.背景
现在国内环境开始越来越正视用户隐藏安全,所有和用户相关的信息(姓名,手机号,昵称,地址 ..等)数据库存储都会进行加密处理,我觉得IT在设计的时候也要有这种意识,更多的关注隐私安全。
2). 问题
隐藏数据加密后是以hash串的方式存储在数据库中,这样会有几个问题,因为数据加密后和原值完全不一样。100%匹配搜索这个是没有问题的,但是想通过关键字找查就行不通了,以前的like等完全用不了
3). 目的
1.可以全文搜索
2.可以通过关键字匹配搜索
4). 尝试解决方案
- 把所有关键字先解密,再foreach匹配
- 优点:确实可以查了,并且也可以通过关键字查
- 缺点:数据小还好,稍大点就不行。太消耗性能
5). 求助点
有没有更优的方案,可以达到目的
已解决 推荐博客内容【https://ningyu1.github.io/20201230/encrypted-data-fuzzy-query.html】
备注. 为什么要加密,我觉得我有必要解释下….
客观原因:
客观原因不说了,想做的自然做,不想做的大家都不想做。这东西费力不讨好
直观原因:
请参照 GDPR法规 和隐私政策保护 国标GB/T 35273-2017 有明确指出 "数据存储加密:线上数据加密一般会对结构化数据的某几个敏感字段加密,比如含有个人隐私信息的字段"
进屋了还要穿衣服么?
加密到数据库储存感觉是毫无意义,只需要在展示的地方加密或者脱敏即可
有点儿不懂,需要搜索的数据还加吉尔密,对内部人员,做好数据的权限控制,导出啥的混淆一下
新的隐私法是要求数据库存储敏感字段加密的,可以试试国密SM4,对称加密,这样就可以检索了
内部搭建一个“明文数据库”用于搜索不行吗?