MySQL中使用MD5加密的實(shí)現(xiàn)
什么是MD5?
MD5信息摘要算法(英語:MD5 Message-Digest Agorithm),一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。MD5由美國(guó)密碼學(xué)家羅納德·李維斯特(Ronald LinnRivest))設(shè)計(jì),于1992年公開,用以取代MD4算法。這套算法的程序在RFC1321標(biāo)準(zhǔn)中被加以規(guī)范。1996年后該算法被證實(shí)存在弱點(diǎn),可以被加以破解,對(duì)于需要高度安全性的數(shù)據(jù),專家一般建議改用其他算法,如SHA-2。2004年,證實(shí)MD5算法無法防止碰撞(collision),因此不適用于安全性認(rèn)證,如SSL公開密鑰認(rèn)證或是數(shù)字簽名等用途?!疽陨细拍钜园俣劝倏啤?/p>
MD5初體驗(yàn)
在mysql中準(zhǔn)備一個(gè)簡(jiǎn)單的用戶表用于案例操作。
接下來測(cè)試各種sql語句:
普通插入語句(密碼明文):
-- 普通新增語句(明文密碼) insert into user(uname,upass) values ('tom','1001');
在插入信息時(shí)加密**:**
-- 插入時(shí)使用MD5 算法加密 insert into user(uname,upass) values ('jack',MD5('1002'));
查詢查看結(jié)果:
修改: 使用MD5算法將賬號(hào)admin的密碼修改。
-- 將原密碼換為MD5加密后的密碼 update user set upass=MD5(upass) where id =1; -- 將原密碼123456修改為 MD5加密后的密碼(666) update user set upass=MD5('666') where id =2;
結(jié)果:
加密全部密碼:
-- 加密全部密碼 update user set upass=MD5(upass)
條件查詢,進(jìn)行驗(yàn)證:
-- 根據(jù)賬號(hào)密碼 查詢對(duì)應(yīng)賬號(hào)信息 select * from user where uname='admin' and upass=MD5('123')
-- 測(cè)試 將密碼修改為666 的賬號(hào)信息 select * from user where uname='root' and upass=MD5('666')
以上是通過MD5算法在mysql數(shù)據(jù)庫(kù)中對(duì)一些信息的簡(jiǎn)單加密,具體知識(shí)有待整理。
MySQL中其他方式
(1) PASSWORD()函數(shù):
-- password() 函數(shù)加密 update userinfo set password =password('333') where id=6 -- 查詢驗(yàn)證 select * from userinfo where password=password('333')
password(str)從原明文密碼str計(jì)算并返回加密后的密碼字符串,當(dāng)參數(shù)為null時(shí),返回null。password加密是單向的,不可逆。
(2) ENCODE()函數(shù)
ENCODE(str,pass_str)函數(shù)用于對(duì)純文本字符串進(jìn)行編碼,在編碼后返回二進(jìn)制字符串.
使用pswd_str作為密碼,加密str.
str:它用于指定要編碼的純文本
pass_str:用于指定密碼字符串以對(duì)純文本字符串進(jìn)行編碼.
-- 字符串 select encode('hello','nice')
-- 字符串和數(shù)字 select encode('nihao666','nice')
(3) DECODE(crypt_str,pass_str)
使用pswd_str作為密碼,解密加密字符串crypt_str,crypt_str是由encode()返回的字符串。
select DECODE('nihao666','nice')
-- 使用decode函數(shù)解密encode加密的字符串 select DECODE(ENCODE('nihao666','nice'),'nice');
到此這篇關(guān)于MySQL中使用MD5加密的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL MD5加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
快速增加MYSQL數(shù)據(jù)庫(kù)連接數(shù)負(fù)載能力的方法分享
mysql數(shù)據(jù)庫(kù)的負(fù)載能力除了和你機(jī)器硬件有關(guān),還有一個(gè)重要參數(shù)就是你系統(tǒng)的配置有關(guān),下面我來給大家介紹幾種提高M(jìn)YSQL數(shù)據(jù)庫(kù)連接數(shù)負(fù)載能力方法總結(jié),有需要的朋友可以參考一下2013-08-08MySQL數(shù)據(jù)表損壞的正確修復(fù)方案
修復(fù)以損壞的MySQL數(shù)據(jù)表的實(shí)際操作在實(shí)際中是我們經(jīng)常用到的,以下的文章主要是介紹正確修復(fù)以損壞的MySQL數(shù)據(jù)表的實(shí)際操作步驟,以下就是正文的介紹,希望會(huì)給你帶來一些幫助在此方面。2011-01-01CentOS7.x?安裝mysql5.7?XtraBackUp備份工具使用命令詳解
這篇文章主要介紹了CentOS7.x?安裝mysql5.7?XtraBackUp備份工具使用,本文給大家介紹了mysql安裝過程及命令使用方法,需要的朋友可以參考下2022-04-04