170929 關於md5加密

2022-08-27 00:18:28 字數 1933 閱讀 4789

在各種應用系統中,如果需要設定賬戶,那麼就會涉及到儲存使用者賬戶資訊的問題,為了保證所儲存賬戶資訊的安全,通常會採用md5加密的方式來,進行儲存。首先,簡單得介紹一下,什麼是md5加密。

md5的全稱是message-digest algorithm 5(資訊-摘要演算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest開發出來,經md2、md3和md4發展而來。是讓大容量資訊在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把乙個任意長度的位元組串變換成一定長的大整數)。不管是md2、md4還是md5,它們都需要獲得乙個隨機長度的資訊並產生乙個128位的資訊摘要。雖然這些演算法的結構或多或少有些相似,但md2的設計與md4和md5完全不同,那是因為md2是為8位機器做過設計優化的,而md4和md5卻是面向32位的電腦。這三個演算法的描述和c語言源**在internet rfcs 1321中有詳細的描述,這是乙份最權威的文件,由ronald l. rivest在2023年8月向ietf提交。

(一)訊息摘要簡介     乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印(對於sha1是產生乙個20位元組的二進位制陣列)。訊息摘要是一種與訊息認證碼結合使用以確保訊息完整性的技術。主要使用單向雜湊函式演算法,可用於檢驗訊息的完整性,和通過雜湊密碼直接以文字形式儲存等,目前廣泛使用的演算法有md4、md5、sha-1。

訊息摘要有兩個基本屬性: 

兩個不同的報文難以生成相同的摘要

難以對指定的摘要生成乙個報文,而可以由該報文反推算出該指定的摘要

代表:美國國家標準技術研究所的sha1和麻省理工學院ronald rivest提出的md5

(二)對字串進行加密

/**利用md5進行加密    

* @param str  待加密的字串   

* @return  加密後的字串   

* @throws nosuchalgorithmexception  沒有這種產生訊息摘要的演算法   

結果

(三)驗證密碼是否正確         

因為md5是基於訊息摘要原理的,訊息摘要的基本特徵就是很難根據摘要推算出訊息報文,因此要驗證密碼是否正確,就必須對輸入密碼(訊息報文)重新計算其摘要,和資料庫中儲存的摘要進行對比(即資料庫中儲存的其實為使用者密碼的摘要),若兩個摘要相同,則說明密碼正確,不同,則說明密碼錯誤。

/**判斷使用者密碼是否正確     

* @param newpasswd  使用者輸入的密碼      

* @param oldpasswd  資料庫中儲存的密碼--使用者密碼的摘要     

結果:

關於MD5加密

前言 任何以明文方式儲存使用者密碼的行為都是耍流氓。md5作為一種單項加密方式,常用在資料脫敏和軟體數字簽名等方面。以下是介紹正文 md5的全稱是message digest algorithm 5 資訊 摘要演算法 在90年代初由mit laboratory for computer scienc...

關於MD5加密

md5 tanajiya.tar.gz 0ca175b9c0f726a831d895e269332461 這就是tanajiya.tar.gz檔案的數字簽名。md5將整個檔案當作乙個大文字資訊,通過其不可逆的字串變換演算法,產生了這個唯一的md5資訊摘要。為了讓讀者朋友對md5的應用有個直觀的認識,...

關於md5加密

說明 隨著網路發展的越來越廣泛,網上業務越來越流行,使用者的隱私資訊安全性也越來越重要!加密的方式有很多種 目前比較受程式設計師推崇的還是md5加密!md5加密的原理 對任何資訊進行處理生成唯一的128位雜湊表,也就是32個字元 使用步驟 可以直接使用xcode提供的加密也可以在文件中匯入第三方的m...