项目里的个人信息一般如何保存呢?

做了一个考试系统需要报名,报名有姓名、身份证、电话
甲方提到说要把个人信息加密,如果脱了库至少看到不是明文信息。
我想的是拿一个20位的key,然后和对应的字段来一个md5。
但如果这样,我如果要查询某个人的信息,这又怎么处理呢?
比如,姓名张三,我给md5后那肯定乱得不行,那如何我要搜索姓张的人,那就不好操作了!

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 19

用 md5 加密? md5 怎么加密?md5 只是混淆字符串

数据加密肯定是要用 RSA 这种啊

2年前 评论
cnguu

数据库本身的加密函数

比如 mysqlAES_DECRYPT AES_ENCRYPT

2年前 评论
Mutoulee

方向不一定是加密,也有可能是脱敏

2年前 评论
donggan 2年前

做成可逆的加密,如 base64,然后 laravel 中用修改器

2年前 评论

数据库所有的数据加密会影响服务器性能,而且像你最后说的,不方便查询。但是要做的话,也能做,就是用对称加密来对数据进行处理后落库,需要查数据的时候,再解密出原始值来。 最好的办法是说服甲方不做这个,如果怕脱库,那就不怕脱代码吗,难道代码也要加密?

2年前 评论
如此甚好 2年前

laravel 自带加密解密加密解密《Laravel 9 中文文档》

然后再模型里面写修改器进行加密 属性修改器《Laravel 9 中文文档》

写访问器进行解密属性修改器《Laravel 9 中文文档》

至于搜索可以对搜索的字段进行冗余加密,好比name_md5,搜索的时候md5(‘老张’)

2年前 评论
slowlyo 2年前
JerryBool 2年前
臭鼬 (作者) 2年前
msmax (楼主) 2年前

对称加密,检索的话只做精确检索,不做模糊检索

2年前 评论

可以尝试一下这个,可以对数据加密也可以对加密的字符串进行解密 openssl_encrypt openssl_decrypt

2年前 评论

数据库加密,如果需要查询的直接同步一份到ES里非加密的如何 :grin:,只能想到这

2年前 评论

模仿查询只允许一部分,比如手机号,后四位保存起来,身份证后六位,很多都是这样的

2年前 评论

要可逆的,只要加密的密钥不泄漏,数据库泄漏了别人也无法拿到正确信息

2年前 评论

packagist.org/packages/elgibor-sol...

简单点的话,你就是安装这种composer数据库加解密的包

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!