首页 > php 二进制加密数据如何保证数据唯一性?

php 二进制加密数据如何保证数据唯一性?

公司数据库里的用户敏感数据需要加密成二进制密文存在mysql blob类型字段里,现在发现要保证用户数据的唯一性不好弄, 因为发现blob类型字段似乎不能直接进行逻辑运算,也不能把表里的密文全读出来解密一遍再进行逻辑运算吧


直接mysql内置方法 hex()


根据用户id缓存密文md5


我觉得应该这样做:

  1. 新增数据在加密前对明文进行md5哈希,然后存个hash后的值(加密后的blob当然也要存)

  2. 而已有的数据则需要找个时间全部解密md5下,然后存放下hash后的值

这样判断唯一性则直接判断hash后的值一般就行了。

不推荐对密文进行md5 -- 除非你能确保相同的明文加密后总是能产生同样的密文。然而密文至少会受到密钥的影响,换密钥后肯定密文会变掉... 况且有些加密方式本身带有随机化的初始向量,每次加密出来的密文是不同的。

【热门文章】
【热门文章】