MD5 加密演算法詳細介紹

2021-09-11 08:14:25 字數 1516 閱讀 1955

message-digest algorithm 5(資訊-摘要演算法)。經常說的「md5加密」,就是它→資訊-摘要演算法。

白話白話:md5,其實就是一中演算法。可以將乙個字串,或檔案,或壓縮包,執行md5後,就可以生成乙個固定長度為128bit的串。這個串,基本上是唯一的。

所以,有人修過壓縮包後,就會生成新的串,這時就可以拿**提供的串和新生成的串對比,如果不同,那就是被人修過過了。

加密後的訊息是完整的;具有解密演算法,得到原始資料;

摘要得到的訊息是不完整的;通過摘要的資料,不能得到原始資料;

所以,當看到很多人說,md5,加密,解密的時候,呵呵一笑就好了。

有人說md5,128位,32位,16位,到底md5多長?

md5的長度,預設為128bit,也就是128個0和1的二進位制串。

這樣表達是很不友好的。

所以將二進位制轉成了16進製制,每4個bit表示乙個16進製制,

所以128/4 = 32 換成16進製表示後,為32位了。

網上有很多帖子,md5 32位 16位 加密 區別。

仔細觀察admin生成的32位和16位的md5值……

查詢結果:

md5(admin,32) = 21232f297a57a5a743894a0e4a801fc3

md5(admin,16) = 7a57a5a743894a0e

看出來了吧!

其實16位的長度,是從32位md5值來的。是將32位md5去掉前八位,去掉後八位得到的。

①一致性檢驗,最上面那個例子

②數字簽名,還是最上面那個例子。只是把md5看出了乙個指紋,按了個手印說明獨一無二了。

③安全訪問認證,這個就是平時系統設計的問題了。

在使用者註冊時,會將密碼進行md5加密,存到資料庫中。這樣可以防止那些可以看到資料庫資料的人,惡意操作了。

md5是不可逆的,也就是沒有對應的演算法,從生產的md5值逆向得到原始資料。

但是如果使用暴力破解,那就另說了。

md5作為資料庫中的主鍵可行嗎?這就涉及到乙個問題,md5值是唯一的嗎?答案是,不唯一。

也就是乙個原始資料,只對應乙個md5值;

但是乙個md5值,可能對應多個原始資料。

public class  md5test 

/*** 生成md5

* @param message

* @return

*/public static string ge***5(string message) catch(exception e)

return md5str;

}/**

* 二進位制轉十六進製制

* @param bytes

* @return

*/public static string bytestohex(byte bytes)

if(digital < 16)

}return md5str.tostring().touppercase();

}}

**:

md5加密演算法

md5.h ifndef md5h define md5h include include void rol unsigned int s,unsigned short cx 32位數迴圈左移實現函式 void ltob unsigned int i b l互轉,接受uint型別 unsigned ...

MD5加密演算法

md5訊息摘要演算法 message digest algorithm 它對輸入的任意長度的訊息進行運算,產生乙個128位的訊息摘要。演算法原理 資料填充 填充訊息使其長度與448模512同餘 長度 448 mod 512 即時訊息長度本身已經滿足了上述長度要求也需要填充。填充方法 附乙個1在訊息後...

加密演算法 MD5

一 簡介 md5的全稱是message digest algorithm 5 資訊摘要演算法 在90年代初由mit laboratory for computer science和rsa data security inc的ronald l.rivest開發出來,經md2 md3和md4發展而來。訊...