當前位置:首頁站長工具MD5加密,MD5在線加密,MD5校驗(MD5加密算法)

MD5加密 MD5在線加密 MD5校驗

MD5加密工具

請在下面輸入需要MD5加密的字符串

16位大寫: (雙擊復制)

16位小寫: (雙擊復制)

32位大寫: (雙擊復制)

32位小寫: (雙擊復制)

MD5加密算法介紹  (查看全文
  在一些初始化處理后,MD5以512位分組來處理輸入文本,每一分組又劃分為16個32位子分組。算法的輸出由四個32位分組組成,將它們級聯形成一個128位散列值。
  首先填充消息使其長度恰好為一個比512位的倍數僅小64位的數。填充方法是附一個1在消息后面,后接所要求的多個0,然后在其后附上64位的消息長度(填充前)。這兩步的作用是使消息長度恰好是512位的整數倍(算法的其余部分要求如此),同時確保不同的消息在填充后不相同。
  四個32位變量初始化為:
    A=0x01234567
    B=0x89abcdef
    C=0xfedcba98
    D=0x76543210
  它們稱為鏈接變量(chaining variable)。
  接著進行算法的主循環,循環的次數是消息中512位消息分組的數目。
  將上面四個變量復制到別外的變量中:A到a,B到b,C到c,D到d。
  主循環有四輪(MD4只有三輪),每輪很相擬。第一輪進行16次操作。每次操作對a,b,c和d中的其中三個作一次非線性函數運算,然后將所得結果加上第四個變量,文本的一個子分組和一個常數。再將所得結果向右環移一個不定的數,并加上a,b,c或d中之一。最后用該結果取代a,b,c或d中之一。
  以一下是每次操作中用到的四個非線性函數(每輪一個)。
    F(X,Y,Z)=(X&Y)|((~X)&Z)
    G(X,Y,Z)=(X&Z)|(Y&(~Z))
    H(X,Y,Z)=X^Y^Z
    I(X,Y,Z)=Y^(X|(~Z))
  (說明:&是“與”,|是“或”,~是“非”,^是“異或”)
  這些函數是這樣設計的:如果X、Y和Z的對應位是獨立和均勻的,那么結果的每一位也應是獨立和均勻的。
  函數F是按逐位方式操作:如果X,那么Y,否則Z。函數H是逐位奇偶操作符。
  設Mj表示消息的第j個子分組(從0到15),<<<s表示循環左移s位,則四種操作為:
    FF(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(F(b,c,d)+Mj+ti)<<<s)
    GG(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(G(b,c,d)+Mj+ti)<<<s)
    HH(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(H(b,c,d)+Mj+ti)<<<s)
    II(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(I(b,c,d)+Mj+ti)<<<s)
  這四輪(64步)是:
  第一輪
    FF(a,b,c,d,M0,7,0xd76aa478)
    FF(d,a,b,c,M1,12,0xe8c7b756)
    FF(c,d,a,b,M2,17,0x242070db)
    FF(b,c,d,a,M3,22,0xc1bdceee)
    FF(a,b,c,d,M4,7,0xf57c0faf)
    FF(d,a,b,c,M5,12,0x4787c62a)
    FF(c,d,a,b,M6,17,0xa8304613)
    FF(b,c,d,a,M7,22,0xfd469501)
    FF(a,b,c,d,M8,7,0x698098d8)
    FF(d,a,b,c,M9,12,0x8b44f7af)
    FF(c,d,a,b,M10,17,0xffff5bb1)
    FF(b,c,d,a,M11,22,0x895cd7be)
    FF(a,b,c,d,M12,7,0x6b901122)
    FF(d,a,b,c,M13,12,0xfd987193)
    FF(c,d,a,b,M14,17,0xa679438e)
    FF(b,c,d,a,M15,22,0x49b40821)
  第二輪
    GG(a,b,c,d,M1,5,0xf61e2562)
    GG(d,a,b,c,M6,9,0xc040b340)
    GG(c,d,a,b,M11,14,0x265e5a51)
    GG(b,c,d,a,M0,20,0xe9b6c7aa)
    GG(a,b,c,d,M5,5,0xd62f105d)
    GG(d,a,b,c,M10,9,0x02441453)
    GG(c,d,a,b,M15,14,0xd8a1e681)
    GG(b,c,d,a,M4,20,0xe7d3fbc8)
    GG(a,b,c,d,M9,5,0x21e1cde6)
    GG(d,a,b,c,M14,9,0xc33707d6)
    GG(c,d,a,b,M3,14,0xf4d50d87)
    GG(b,c,d,a,M8,20,0x455a14ed)
    GG(a,b,c,d,M13,5,0xa9e3e905)
    GG(d,a,b,c,M2,9,0xfcefa3f8)
    GG(c,d,a,b,M7,14,0x676f02d9)
    GG(b,c,d,a,M12,20,0x8d2a4c8a)
  第三輪
    HH(a,b,c,d,M5,4,0xfffa3942)
    HH(d,a,b,c,M8,11,0x8771f681)
    HH(c,d,a,b,M11,16,0x6d9d6122)
    HH(b,c,d,a,M14,23,0xfde5380c)
    HH(a,b,c,d,M1,4,0xa4beea44)
    HH(d,a,b,c,M4,11,0x4bdecfa9)
    HH(c,d,a,b,M7,16,0xf6bb4b60)
    HH(b,c,d,a,M10,23,0xbebfbc70)
    HH(a,b,c,d,M13,4,0x289b7ec6)
    HH(d,a,b,c,M0,11,0xeaa127fa)
    HH(c,d,a,b,M3,16,0xd4ef3085)
    HH(b,c,d,a,M6,23,0x04881d05)
    HH(a,b,c,d,M9,4,0xd9d4d039)
    HH(d,a,b,c,M12,11,0xe6db99e5)
    HH(c,d,a,b,M15,16,0x1fa27cf8)
    HH(b,c,d,a,M2,23,0xc4ac5665)
  第四輪
    II(a,b,c,d,M0,6,0xf4292244)
    II(d,a,b,c,M7,10,0x432aff97)
    II(c,d,a,b,M14,15,0xab9423a7)
    II(b,c,d,a,M5,21,0xfc93a039)
    II(a,b,c,d,M12,6,0x655b59c3)
    II(d,a,b,c,M3,10,0x8f0ccc92)
    II(c,d,a,b,M10,15,0xffeff47d)
    II(b,c,d,a,M1,21,0x85845dd1)
    II(a,b,c,d,M8,6,0x6fa87e4f)
    II(d,a,b,c,M15,10,0xfe2ce6e0)
    II(c,d,a,b,M6,15,0xa3014314)
    II(b,c,d,a,M13,21,0x4e0811a1)
    II(a,b,c,d,M4,6,0xf7537e82)
    II(d,a,b,c,M11,10,0xbd3af235)
    II(c,d,a,b,M2,15,0x2ad7d2bb)
    II(b,c,d,a,M9,21,0xeb86d391)
  常數ti可以如下選擇:
  在第i步中,ti是4294967296*abs(sin(i))的整數部分,i的單位是弧度。(2的32次方)
  所有這些完成之后,將A,B,C,D分別加上a,b,c,d。然后用下一分組數據繼續運行算法,最后的輸出是A,B,C和D的級聯。
  MD5的安全性,MD5相對MD4所作的改進:
  1、增加了第四輪。
  2、每一步均有唯一的加法常數。
  3、為減弱第二輪中函數G的對稱性從(X&Y)|(X&Z)|(Y&Z)變為(X&Z)|(Y&(~Z))。
  4、第一步加上了上一步的結果,這將引起更快的雪崩效應。
  5、改變了第二輪和第三輪中訪問消息子分組的次序,使其更不相似。
  6、近似優化了每一輪中的循環左移位移量以實現更快的雪崩效應,各輪的位移量互不相同。
[TOP]
本站部分內容收集整理于網絡,如有問題請隨時聯系站長點擊這里給我發消息,本站將在第一時間內進行處理!
設為首頁   收藏本站   友情鏈接   蜀ICP備08103254號-1  川公網安備51140202000211號  最佳瀏覽環境:IE7.0及以上 1024px×768px
   騰訊分析  
四川快乐12走势