MySQL进阶 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

加密函数

MySQL特意设计了一些函数对数据进行加密。

AES_ENCRYPT(str,key);//返回使用密钥key对字符串str利用高级加密标准算法加密后的结果
AES_DECRYPT(str,key);    //返回使用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key);//使用key作为密钥解密加密字符串str
ENCRYPT(str,salt);//使用UNIX crypt()函数,用关键词salt加密字符串str
ENCODE(str,key);//使用key作为密钥加密字符串str
MD5();//计算字符串str的MD5校验和
PASSWORD(str);//返回字符串str的加密版本
SHA();//计算字符串str的安全散列算法(SHA)校验和

password()函数用来创建一个经过加密的密码字符串,它适合于插入到MySQL的安全系统。这个加密过程是不可以逆转的, 和UNIX密码加密使用不同的算法

如果愿意的话,可以通过ENCRYPT()函数使用UNIX crypt()系统加密字符串,ENCRYPT()函数接收要加密的字符串 和(可选的)用于加密过程的salt(一个可以唯一确定口令的字符串,就像钥匙一样)。

还可以使用ENCODE()函数和DECODE()函数来加密和解密字符串,ENCODE()有两个参数:被加密的字符串和作为加密基础的密钥:

insert into users values('','john',ENCODE('asdfasdf','secret_key'));
select * from users;
select id,uname,DECODE(upass,'secret_key') from users;