MySQL中如何使用MD5加密
导读:本文共2434字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:接下来,请跟着小编一起来学习吧!什么是MD5?MD5信息摘要算法(英语:MD5 Message-Digest Agorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald LinnRivest))设计,于1992年公开,用以取代MD4算法。这套... ...
目录
(为您整理了一些要点),点击可以直达。接下来,请跟着小编一起来学习吧!
什么是MD5?
MD5信息摘要算法(英语:MD5 Message-Digest Agorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald LinnRivest))设计,于1992年公开,用以取代MD4算法。这套算法的程序在RFC1321标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
MD5初体验
在mysql中准备一个简单的用户表用于案例操作。
接下来测试各种sql语句:
普通插入语句(密码明文):
--普通新增语句(明文密码)
insertintouser(uname,upass)values('tom','1001');
在插入信息时加密:
--插入时使用MD5算法加密
insertintouser(uname,upass)values('jack',MD5('1002'));
查询查看结果:
修改: 使用MD5算法将账号admin的密码修改。
--将原密码换为MD5加密后的密码
updateusersetupass=MD5(upass)whereid=1;
--将原密码123456修改为MD5加密后的密码(666)
updateusersetupass=MD5('666')whereid=2;
结果:
加密全部密码:
--加密全部密码
updateusersetupass=MD5(upass)
条件查询,进行验证:
--根据账号密码查询对应账号信息
selectfromuserwhereuname='admin'andupass=MD5('123')
--测试将密码修改为666的账号信息
selectfromuserwhereuname='root'andupass=MD5('666')
以上是通过MD5算法在mysql数据库中对一些信息的简单加密,具体知识有待整理。
MySQL中其他方式
(1) PASSWORD()函数:
--password()函数加密
updateuserinfosetpassword=password('333')whereid=6
--查询验证
select*fromuserinfowherepassword=password('333')
password(str)从原明文密码str计算并返回加密后的密码字符串,当参数为null时,返回null。password加密是单向的,不可逆。
(2) ENCODE()函数
ENCODE(str,pass_str)函数用于对纯文本字符串进行编码,在编码后返回二进制字符串.
使用pswd_str作为密码,加密str.
str:它用于指定要编码的纯文本
pass_str:用于指定密码字符串以对纯文本字符串进行编码.
--字符串
selectencode('hello','nice')
--字符串和数字
selectencode('nihao666','nice')
(3) DECODE(crypt_str,pass_str)
使用pswd_str作为密码,解密加密字符串crypt_str,crypt_str是由encode()返回的字符串。
selectDECODE('nihao666','nice')
--使用decode函数解密encode加密的字符串若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
selectDECODE(ENCODE('nihao666','nice'),'nice');
MySQL中如何使用MD5加密的详细内容,希望对您有所帮助,信息来源于网络。