加密与解密函数主要用于对数据库中的数据进行加密和解密处理,以防止数据被他人窃取。这些函数在保证数据库安全时非常有用。

    函数 用法
    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) 函数互为反函数。

    举例:

    1. SELECT PASSWORD('mysql'), PASSWORD(NULL); # MySQL 8 报错, 弃用
    2. SELECT md5('123');
    3. SELECT SHA('Tom123');
    4. SELECT ENCODE('mysql', 'mysql'); # MySQL 8 报错, 弃用
    5. SELECT DECODE(ENCODE('mysql','mysql'),'mysql'); # MySQL 8 报错, 弃用