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

WBOY
Freigeben: 2016-08-30 09:36:44
Original
1200 Leute haben es durchsucht

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

回复内容:

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

根据用户id缓存密文md5

我觉得应该这样做:

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

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

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

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

直接mysql内置方法 hex()

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!