加密与解密函数主要用于对数据库中的数据进行加密和解密处理,以防止数据被他人窃取。这些函数在保证数据库安全时非常有用。
函数 | 用法 |
---|---|
PASSWORD(str) |
返回字符串 str 的加密版本,41 位长的字符串。加密结果不可逆,常用于用户的密码加密 |
MD5(str) |
返回字符串 str 的 md5 加密后的值,也是一种加密方式。若参数为 NULL,则会返回 NULL |
SHA(str) |
从原明文密码 str 计算并返回加密后的密码字符串,当参数为 NULL 时,返回 NULL。SHA 加密算法比 MD5 更加安全。 |
ENCODE(v, password_seed) |
返回使用 password_seed 作为加密密码加密 v |
DECODE(v, password_seed) |
返回使用 password_seed 作为加密密码解密 v |
可以看到,ENCODE(value,password_seed)
函数与 DECODE(value,password_seed)
函数互为反函数。
举例:
SELECT PASSWORD('mysql'), PASSWORD(NULL); # MySQL 8 报错, 弃用
SELECT md5('123');
SELECT SHA('Tom123');
SELECT ENCODE('mysql', 'mysql'); # MySQL 8 报错, 弃用
SELECT DECODE(ENCODE('mysql','mysql'),'mysql'); # MySQL 8 报错, 弃用