MD5訊息摘要演算法的那些事

2022-03-10 19:39:16 字數 1099 閱讀 3520

1. md5(message digest)訊息摘要演算法

(1) md5演算法是一種雜湊(hash)演算法(摘要演算法,指紋演算法),不是一種加密演算法,任何長度的任意內容都可以用md5計算出雜湊值

(2)無論字串還是檔案都可以計算md5值,無論字串長短,還是檔案大或者小,計算出來的md5值得位數相同

(3)不可逆,不可能根據現有的md5值,計算出原來的字串是什麼

(4)不可重複性(理論上可以重複,但是機率很小)

(5)md5演算法理論上是不可逆的,因此攻擊的唯一辦法就是碰撞,兩個不同的內容生成相同的md5值,這就是碰撞

2. 計算字串的加密

(1)對字串進行加密

(2)    效果展示

3. 計算檔案的加密

(1) 對檔案進行加密

private static string md5encryptformfile(string path)

return sb.tostring();}}

console.write("請輸入檔案路徑:");

string path = console.readline();

string md5 = md5encryptformfile(path);

console.writeline(md5);

(2) 效果展示

4. md5加密計算器

(1)  這個軟體的基本設計用到的東西就是上面的兩個演算法,還有乙個就是支援拖拽的**如下:

string filename;

private void txtmessage_dragdrop(object sender, drageventargs e)

, stringsplitoptions.removeemptyentries);

txtmessage.text = "檔案路徑:" + filename[0] + "\r\n" + "檔名稱:" + str[str.length - 1];}}

private void txtmessage_dragenter(object sender, drageventargs e)

}(2) 下面我展示幾張截圖的效果:

1)  檔案使用截圖

2) 字串使用截圖

MD5訊息摘要演算法的那些事

1.md5 message digest 訊息摘要演算法 1 md5演算法是一種雜湊 hash 演算法 摘要演算法,指紋演算法 不是一種加密演算法,任何長度的任意內容都可以用md5計算出雜湊值 2 無論字串還是檔案都可以計算md5值,無論字串長短,還是檔案大或者小,計算出來的md5值得位數相同 3 ...

MD5摘要演算法實現

網上找到的實現md5函式 包括乙個標頭檔案md5.h和乙個原始檔md5.c,用下面的測試 test.c測試通過,各檔案依次如下 標頭檔案md5.h 1 ifndef md5 h 2 define md5 h 34 typedef struct 5md5 ctx 1011 12 define f x,...

MD5訊息摘要的C 實現

計算md5是進行apk分析的最基本操作之一,在mobsf中,由於python的第三方庫十分豐富,要計算md5只需要匯入hashlib這個庫就可以了,但是在c 中,這個東西還得自己實現。本文對github上的乙個md5計算的專案進行擴充套件,使得其可以進行字串md5計算的update操作和對檔案的md...