我喜欢重新设计我的数据库/网站的某些方面,我正在寻找PHP中相当强大的加密函数,MysqL也支持这些函数.
我还需要加密/解密为100%便携式&兼容
大多数情况下,我将使用PHP加密,从MysqL中选择加密版本,然后在PHP中解密.
但偶尔我需要运行一个查询来解密MysqL中的字段,用于报告目的等
我看了一下mycrypt PHP库,但不清楚MysqL支持哪些这些密码.
有什么建议吗?最佳答案在使用Google-fu之后,MysqL似乎使用128位AES和电子密码本(ECB)模式.对于密钥,您需要使用恰好为16个字节的值.
假设我使用_My-16-byte-key_作为我的密钥.
SELECT AES_ENCRYPT('The rooster crows at mIDnight!','_My-16-byte-key_')
结果是:7e41520667dc20457db2f18644bad06dd62a2120be8b93cd5596d8ffea45ef0f
在PHP中,我可以使用mcrypt_decrypt来反转它:
$secret = '7e41520667dc20457db2f18644bad06dd62a2120be8b93cd5596d8ffea45ef0f';$key = '_My-16-byte-key_';print mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$key,pack('H*',$secret),'ecb');
结果:
The rooster crows at mIDnight!
我将把反向流程作为练习留给读者. =) 总结
以上是内存溢出为你收集整理的PHP和MySQL中的高性能加密/解密全部内容,希望文章能够帮你解决PHP和MySQL中的高性能加密/解密所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)