mysql数据库字段加密函数

三世轮回 提交于 2019-12-24 13:47:51

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

php程序中有内置的aes算法函数可以完成加密和解密,但aes算法有个特点:使用同样的明文和秘钥加密得到的结果每次都不一样,这是它的优点,但在做密文字符串比较的时候就会比较麻烦。

加密:先通过AES加密得到一个二进制的密文,然后把密文用HEX函数转换成16进制,最终得到的字符串长度为64位,就可以插入数据表中了

HEX(AES_ENCRYPT('15','abcdefgh'))

解密:这就要反其道而行,先转回到二进制,然后再解密

AES_DECRYPT(UNHEX(money),'abcdefgh')

表中字段被加密后,仍然可以做各种查询操作:

/*在加密字段上使用统计函数*/
SELECT SUM(AES_DECRYPT(UNHEX(money),'abcdefgh')) FROM test;

/*加密字段作为比较条件查询*/
SELECT * FROM test WHERE AES_DECRYPT(UNHEX(money),'abcdefgh') = 50; 

/*查询时获取解密后的明文*/
SELECT AES_DECRYPT(UNHEX(money),'abcdefgh') AS money FROM test; 

应用场景:用户注册信息中的密码,比较敏感的财务数据等

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!