【推荐】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;
应用场景:用户注册信息中的密码,比较敏感的财务数据等
来源:oschina
链接:https://my.oschina.net/u/1475179/blog/681339