首頁  >  文章  >  資料庫  >  MySQL中如何使用MD5加密

MySQL中如何使用MD5加密

王林
王林轉載
2023-05-28 14:16:435116瀏覽

什麼是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中如何使用MD5加密

在mysql中準備一個簡單的使用者表用於案例操作。

接下來測試各種sql語句:

普通插入語句(密碼明文):

-- 普通新增语句(明文密码)
insert into user(uname,upass) values ('tom','1001');

在插入訊息時加密**:**

-- 插入时使用MD5 算法加密
insert into user(uname,upass) values ('jack',MD5('1002'));

查詢查看結果:

MySQL中如何使用MD5加密

修改: 使用MD5演算法將帳號admin的密碼修改。

-- 将原密码换为MD5加密后的密码
update user set upass=MD5(upass) where id =1;
-- 将原密码123456修改为 MD5加密后的密码(666)
update user set upass=MD5('666') where id =2;

結果:

MySQL中如何使用MD5加密

加密全部密碼:

-- 加密全部密码
update user set upass=MD5(upass)

MySQL中如何使用MD5加密

條件查詢,進行驗證:

-- 根据账号密码 查询对应账号信息
select * from user where uname='admin' and upass=MD5('123')

MySQL中如何使用MD5加密

-- 测试 将密码修改为666 的账号信息
select * from user where uname='root' and upass=MD5('666')

MySQL中如何使用MD5加密

以上是透過MD5演算法在mysql資料庫中對一些資訊的簡單加密,具體知識有待整理。

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')

MySQL中如何使用MD5加密

-- 字符串和数字
select encode('nihao666','nice')

MySQL中如何使用MD5加密

(3) DECODE(crypt_str,pass_str)

#使用pswd_str作為密碼,解密加密字串crypt_str,crypt_str是由encode()傳回的字串。

select DECODE('nihao666','nice')

MySQL中如何使用MD5加密

-- 使用decode函数解密encode加密的字符串
select DECODE(ENCODE('nihao666','nice'),'nice');

MySQL中如何使用MD5加密

以上是MySQL中如何使用MD5加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除