MD5資訊摘要演算法(英文:MD5 Message-Digest Agorithm),一個被廣泛使用的密碼雜湊函數,可以產生一個128位元(16位元組)的雜湊值(hash value) ,用於確保訊息傳輸完整一致。 MD5由美國密碼學家羅納德·李維斯特(Ronald LinnRivest))設計,於1992年公開,用以取代MD4演算法。這套演算法的程式在RFC1321標準中被加以規範。 1996年後該演算法被證實存在弱點,可以被加以破解,對於需要高度安全性的數據,專家一般建議改用其他演算法,如SHA-2。2004年,證實MD5演算法無法防止碰撞(collision),因此不適用於安全性認證,如SSL公開金鑰認證或是數位簽章等用途。
在mysql中準備一個簡單的使用者表用於案例操作。
接下來測試各種sql語句:
普通插入語句(密碼明文):
-- 普通新增语句(明文密码) insert into user(uname,upass) values ('tom','1001');
在插入訊息時加密**:**
-- 插入时使用MD5 算法加密 insert into user(uname,upass) values ('jack',MD5('1002'));
查詢查看結果:
修改: 使用MD5演算法將帳號admin的密碼修改。
-- 将原密码换为MD5加密后的密码 update user set upass=MD5(upass) where id =1; -- 将原密码123456修改为 MD5加密后的密码(666) update user set upass=MD5('666') where id =2;
結果:
加密全部密碼:
-- 加密全部密码 update user set upass=MD5(upass)
條件查詢,進行驗證:
-- 根据账号密码 查询对应账号信息 select * from user where uname='admin' and upass=MD5('123')
-- 测试 将密码修改为666 的账号信息 select * from user where uname='root' and upass=MD5('666')
以上是透過MD5演算法在mysql資料庫中對一些資訊的簡單加密,具體知識有待整理。
(1) PASSWORD()函數:
-- password() 函数加密 update userinfo set password =password('333') where id=6 -- 查询验证 select * from userinfo where password=password('333')
password(str)從原明文密碼str計算並傳回加密後的密碼字串,當參數為null時,傳回null。 password加密是單向的,不可逆。
(2) ENCODE()函數
ENCODE(str,pass_str)函數用於對純文字字串進行編碼,在編碼後返回二進位字串.
#使用pswd_str作為密碼,加密str.
str:它用於指定要編碼的純文字
pass_str:用於指定密碼字串以對純文字字符字串進行編碼.
-- 字符串 select encode('hello','nice')
-- 字符串和数字 select encode('nihao666','nice')
(3) DECODE(crypt_str,pass_str)
#使用pswd_str作為密碼,解密加密字串crypt_str,crypt_str是由encode()傳回的字串。
select DECODE('nihao666','nice')
-- 使用decode函数解密encode加密的字符串 select DECODE(ENCODE('nihao666','nice'),'nice');
以上是MySQL中如何使用MD5加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!