MySQL数据库提供的加密函数主要有以下几种
1、可逆的
ENCODE(str,pass_str)加密,DECODE()解密,
使用 pass_str 作为密码,解密 str 。 使用 DECODE() 解密结果,效果如下:

AES_ENCRYPT(str ,key_str )加密 , AES_DECRYPT(crypt_str ,key_str )解密
其中str作为密码,key_str作为参数名字,crypt_str ,key_str 作为参数名

不可逆的:
ENCRYPT(str [,salt ])与AES_ENCRYPT()类似,使用 Unix crypt() 系统调用加密 str 。 salt 参数应为一个至少包含 2 个字符的字符串。若没有给出 salt 参数,则使用任意值

PASSWORD(str)其中str是作为密码

OLD_PASSWORD(str)用的较少,所以不太了解。。。。
MD5(str )该值以 32 位十六进制数字的二进制字符串的形式返回 , 若参数为 NULL 则会返回 NULL 。例如,返回值可被用作散列关键字

目前常用到的加密函数就这些,不过前两种可逆的函数,加密出来的值都是乱码,这是可以用HEX()将其转化成数字与字母的形式,


不过题主在这里是加密了两项参数,当加密两项时,同时使用AES_ENCRYPT或将AES_ENCRYPT和ENCRYPT一起使用,都会造成有一列或者两列为空,但是在前面添加 HEX()函数则不会出现这种情况了。HEX():HEX()函数:返回十六进制值的字符串表示形式。注意:并不是十进制转化为十六进制数,而是转化为字符串。。。
UNHEX() 函数: 每对十六进制数字转化为一个字符。

UNHEX() 函数是解密的时候用到的,

这些加密方法中AES_ENCRYPT可以算是加密性比较高的。

更多推荐

关于MYSQL数据库加密的方法