2016-11-09 71 views
-2

如何生成用於DIGEST MD5挑戰客戶端響應的響應字段,我'目前使用rfc 2831參考摘要生成

從服務器挑戰按照RFC 2831例如MD5響應爲:

realm="elwood.innosoft.com",nonce="OA6MG9tEQGm2hh",qop="auth", 
algorithm=md5-sess,charset=utf-8 

響應從客戶端根據RFC 2831例如:

charset=utf-8,username="chris",realm="elwood.innosoft.com", 
nonce="OA6MG9tEQGm2hh",nc=00000001,cnonce="OA6MHXh6VqTrRk", 
digest-uri="imap/elwood.innosoft.com", 
response=d388dad90d4bbd760a152321f2143af7,qop=auth 

collecte d細節:

  1. 用戶名=克里斯
  2. 密碼=祕密
  3. 隨機數= OA6MG9tEQGm2hh
  4. NC值= 00000001
  5. cnonce = OA6MHXh6VqTrRk
  6. QOP = AUTH
  7. 境界= elwood.innosoft.com
  8. digesturi = imap/elwood.innosoft.com

響應我生成不與在RFC 2831例如在網頁符合19種

製劑在RFC 2831

設H(s)爲16個八位字節的MD5哈希[ RFC 1321]八位字符串s。設KD(k,s)爲H({k,「:」,s}),即字符串k的冒號和字符串s的16位八位組散列。

設HEX(n)爲16個八位字節MD5散列n的表示形式,爲32位十六進制數字的字符串(字母字符總是小寫,因爲MD5區分大小寫)。


目前我'使用下面的過程:

A1 = {H(克里斯:elwood.innosoft.com:祕密), 「:」,隨機數值, 「:」,cnonce值}

online md5 generator

A1 = {eb5a750053e4d2c34aa84bbc9b0b6ee7:OA6MG9tEQGm2hh:OA6MHXh6VqTrRk}

A2 = { 「AUTHENTICATE:」,消化-URI值} 甲2 = {AUTHENTICATE:imap/elwood.innosoft。COM}

H(A1)= 54442ff1f394d9d0de1205cef4d9cebe

HEX(H(A1))= 54442ff1f394d9d0de1205cef4d9cebe

HEX(H(A2))= 15e3594677e51ade69715d1cb7d207ba


RESPONSE = HEX(KD (HEX(H(A1)),{nonce-value,「:」nc-value,「:」,cnonce-value,「:」,qop-value,「:」,HEX(H(A2))}) )

RESPONSE = HEX(KD(54442ff1f394d9d0de1205cef4 d9cebe:OA6MG9tEQGm2hh:00000001:OA6MHXh6VqTrRk:AUTH:15e3594677e51ade69715d1cb7d207ba))

響應按照上述的程序是:

26ef1190b643a36e879673066098379c


但響應值根據RFC是:

d388dad90d4bbd760a152321f2143af7

因此,上面生成的響應與rfc示例中生成的響應不同

需要進行哪些更改?

回答

0

嗨, 您已經正確計算了答案,並且RFC2831中的示例不一致。

0

A1計算錯誤。對於chris:elwood.innosoft.com的MD5摘要:在你的情況下,祕密是32個八位字節的十六進制,每個原始字節有兩個八位字節。在RFC計算中它是16個八位字節,1個字節= 1個字節。