MD5加密簡介以及C 下的操作實現

2021-04-15 17:36:02 字數 1697 閱讀 4270

一:關於md5加密

(這段文字稱不上是原創,從網上找的關於md5加密的簡介,精選了一下,找了一段比較容易理解的給大家看。)

md5的全稱是message-digest algorithm 5,在90年代初由mit的電腦科學實驗室和rsa data security inc發明,經md2、md3和md4發展而來。

message-digest泛指位元組串(message)的hash變換,就是把乙個任意長度的位元組串變換成一定長的大整數。請注意我使用了「位元組串」而不是「字串」這個詞,是因為這種變換只與位元組的值有關,與字符集或編碼方式無關。

md5將任意長度的「位元組串」變換成乙個128bit的大整數,並且它是乙個不可逆的字串變換演算法,換句話說就是,即使你看到源程式和演算法描述,也無法將乙個md5的值變換回原始的字串,從數學原理上說,是因為原始的字串有無窮多個,這有點象不存在反函式的數學

函式。

有上面的簡介大家應該對md5有所了解,也應該可以看出md5加密是無法進行解密的(當然這個也不是絕對的,當然這個我們這篇文章不研究),例如乙個string,利用md5演算法進行加密以後你是無法將他還原為原來的string。看到這個的時候可能有些菜鳥會有疑問了,不能解密我又應該怎麼樣來利用他呢?實際上想明白了就很簡單,在日常開發中,如果資料沒有採用任何加密演算法進行加密的話,資料在資料庫的儲存方式是以明文形式存放的,一旦資料庫被破解,也就是意味著資料洩露,但是如果資料經過加密,就算

資料庫被破解,他們所看到的也只是一堆毫無排列順序可言的數字或字元,當然我們自己看到的也是,呵呵,廢話了啊。

但是md5加密有乙個特點,就是同乙個string在同樣的編碼方式下加密的結果是一樣的,看到這,我也大家也應該明白了點吧,我們所能做的就是通過對加密後的資料進行比較而達到我們的目的,好了,廢話結束,下面開始

c#下md5加密的教程。不過如果是菜鳥的話我還是希望能看看上面的文字,希望通過這段文字可以讓你對md5有一定的了解。

二:c#

下的md5加密實現

怕有些菜鳥看不太懂,我沒有使用consolecode專案實現,而是利用乙個簡單的winform程式表達我想表達的意思。

(1):窗體控制項布局如圖

(2):控制項作用

textbox1:輸入待加密的string

button1:輸出加密結果到label1;

button2:輸出加密結果到label2;(主要用兩次加密結果的比較)

label1,label2:顯示結果

(3):完整**如下

(form1.cs)

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using system.security.cryptography;

return pwd;

}private void button1_click(object sender, eventargs e)

private void button2_click(object sender, eventargs e)}}

MD5加密演算法簡介

在現階段,我們一般認為存在兩種加密方式,單向加密和雙向加密。雙向加密是加密演算法中最常用的,它將我們可以直接理解的明文資料加密為我們不可直接理解的密文資料,然後,在需要的時候,可以使用一定的演算法將這些加密以後的密文解密為原來可以理解的明文。雙向加密適合於隱秘通訊,比如,我們在網上購物的時候,需要向...

C 實現MD5加密

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

C 實現MD5加密

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