如何生成用于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细节:
- 用户名=克里斯
- 密码=秘密
- 随机数= OA6MG9tEQGm2hh
- NC值= 00000001
- cnonce = OA6MHXh6VqTrRk
- QOP = AUTH
- 境界= elwood.innosoft.com
- 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值}
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示例中生成的响应不同
需要进行哪些更改?