加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – MySQL数据库中加密数据的通配符搜索?

发布时间:2020-12-13 18:08:23 所属栏目:PHP教程 来源:网络整理
导读:我正在构建一个小型Web应用程序,它将为每个插入的人保存大约10条信息.由于数据保护,必须加密大部分此类信息. 使用CodeIgniter框架和CodeIgniter加密类,我可以在将数据存储到数据库之前对应用程序端的信息进行编码. CodeIgniter加密类使用PHP的mcrypt函数和AE
我正在构建一个小型Web应用程序,它将为每个插入的人保存大约10条信息.由于数据保护,必须加密大部分此类信息.

使用CodeIgniter框架和CodeIgniter加密类,我可以在将数据存储到数据库之前对应用程序端的信息进行编码. CodeIgniter加密类使用PHP的mcrypt函数和AES_256密码.

我遇到的问题是我需要允许应用程序的用户搜索使用通配符搜索存储的信息,也可能在以后通过API搜索.

任何机构都会遇到类似问题的解决方案.我已经阅读了有关MySQL AES_ENCRYPT和AES_DECRYPT的内容,但是他们仍然需要在纯文本中来回传递密钥,我不愿意这样做.

我目前的结论是,如果我希望继续这条路线,那么每次进行搜索时,全表解密是我唯一的解决方案(显然不是很好).

好吧,你不能在没有解码的情况下搜索解密文本,这是真的.

但是,这并不意味着没有办法解决这个问题.例如,您可以创建一个inverted index的数据并使用哈希值(sha1,md5,crc32,选择一个)来搜索.所有你需要做的就是散列你正在使用的搜索词,在索引中查找它们并检索匹配的任何记录,这只是表的一小部分而不是整个事物.

通过散列数据(使用盐!),您可以避免以不安全的方式存储数据,同时您仍然可以搜索数据,因为您为它创建了索引.在确定哪些文档匹配之前,不需要解密.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读