本文简单介绍MySQL中的加密函数。
MySQL 提供了多种加密函数,以下是一些常用的:
PASSWORD(str)
: 用于密码加密,通常用于创建用户时对密码进行加密。MD5(str)
: 生成一个128位的加密串,返回一个32位的16进制数。SHA1(str)
: 生成一个160位的加密串,返回一个40位的16进制数。ENCODE(str,pass_str)
: 使用 pass_str 作为密钥对 str 进行加密。DECODE(str,pass_str)
: 使用 pass_str 作为密钥对 str 进行解密。
示例:
SELECT MD5('mytext');
SELECT SHA1('mytext');
SELECT PASSWORD('mypassword');
SELECT ENCODE('hello', 'mykey');
SELECT DECODE('encoded_text', 'mykey');
注意:以上加密函数除了ENCODE
和DECODE
可以解密外,其他的都是不可逆的。
PASSWORD(str)
函数在 MySQL 中通常用于创建用户时对密码进行加密。
例如,当你想创建一个新的 MySQL 用户时,你可以使用PASSWORD(str)
函数来加密用户的密码。
以下是一个示例:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY PASSWORD('newpassword');
在这个例子中,newpassword
是用户的原始密码,PASSWORD('newpassword')
会返回加密后的密码。
注意:从 MySQL 5.7.6 开始,PASSWORD()
函数已被废弃,建议使用更安全的ALTER USER
语句来设置密码。
例如:
ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
在这个例子中,newpassword
是用户的原始密码,MySQL 会自动对其进行加密。