mysql数据库字段加密函数

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;

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

相关文章
相关标签/搜索