PHP + MySQL的AES加密解密(数据脱敏)

一、今年公司成立了安全部门团队,开始针对公司内部项目涉及到的数据要进行脱敏处理,要求对姓名,电话,身份证号码等用户敏感数据入库加密,一开始第一想到的在慕课网学到的AES对称散列加密,但是在实践过程中发现AES每次加密得到的密文不一致这也导致数据唯一性校验没有任何用。以及模糊搜索也会使用不了,也想base64搞下算了,但是这也安全团队那关是过不了的,经过多处查询资料发现,MySQL自带AES的加解密函数AES_DECRYPT() ,AES_ENCRYPT(),话不多说上案列。

MySQL篇:

 加密的SQL语句

INSERT INTO `tablea`(`classID`, `stuName`) VALUES ('B', HEX(AES_ENCRYPT('huang','SecretKey')));

[SecretKey]是秘钥约定好的后面都是一样不在赘述,AES_ENCRYPT()函数加密后是二进制,使用HEX函数转化成十六进制字符串;(ps:直接将加密后的串存入char/varchar/text类型中,在做字符转换的时或空格被删除时,可能会带来潜在的影响。所以必须使用HEX转换十六进制)

执行结果:

模糊搜索SQL

SELECT * FROM	ta
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_34701838

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值