md5演算法解密
MD5加密是不能逆運算的,現在的破解大都是窮盡法,就是有一個龐大的MD5碼對照表放在那裡,然後一個一個去對照著查。
Ⅱ asp中用md5演算法得到的加密數據如何解密!麻煩寫個簡單的代碼演示下!
MD5 是破壞性加密,也就是說是無法由密文直接解密的。
詳細說明如下:
MD5是輸入不定長度訊息,輸出固定長度128-bits的演演算法。經過程式流程,生成四個32位元資料,最後聯合起來成為一個128-bits雜湊。基本方式為,求余、取余、調整長度、與連結變數進行迴圈運算。得出結果。一般128位元的MD5雜湊被表示為32位元十六進制數位。以下是一個43位長ASCII字母列的MD5雜湊:
MD5("The quick brown fox jumps over the lazy dog") =
即使在原文中作一個小變化(比如用c取代d)其雜湊也會發生巨大的變化:
MD5("The quick brown fox jumps over the lazy cog") =
而空文的雜湊為:
MD5("") =
MD5的弱點:
MD5較老,雜湊長度通常為128位元,隨著電腦運算能力提高,找到「碰撞」是可能的。因此,在安全要求高的場合不使用MD5。
2004年,王小雲證明MD5數位簽名演演算法可以產生碰撞。
2007年,Marc Stevens,Arjen K. Lenstra和Benne de Weger進一步指出透過偽造軟體簽名,可重復性攻擊MD5演演算法。研究者使用字首碰撞法(chosen-prefix collision),使程式前端包含惡意程式,利用後面的空間添上垃圾代碼湊出同樣的MD5 Hash值。
2007年,荷蘭埃因霍芬技術大學科學家成功把2個執行檔進行了MD5碰撞,使得這兩個執行結果不同的程式被計算出同一個MD5。
2008年12月一組科研人員透過MD5碰撞成功生成了偽造的SSL證書,這使得在https協議中伺服器可以偽造一些根CA的簽名。