php程序中有内置的aes算法函数能够完成加密和解密,但aes算法有个特色:使用一样的明文和秘钥加密获得的结果每次都不同,这是它的优势,但在作密文字符串比较的时候就会比较麻烦。php
加密:先经过AES加密获得一个二进制的密文,而后把密文用HEX函数转换成16进制,最终获得的字符串长度为64位,就能够插入数据表中了算法
HEX(AES_ENCRYPT('15','abcdefgh'))
解密:这就要反其道而行,先转回到二进制,而后再解密sql
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;
应用场景:用户注册信息中的密码,比较敏感的财务数据等加密