2016-11-09 21 views
-2

, I'am 현재 RFC에 따라 참조 용 2831 예를 서버에서은 DIGEST MD5 도전에 대한 클라이언트 응답 응답 필드를 생성하는 방법 세대

도전 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 = 인증
  7. 영역 = elwood.innosoft.com
  8. digesturi = imap/elwood.innosoft.com
  9. ,210

응답 난 생성은 RFC 페이지에서 RFC 2831 예제에서 19 개

제형 따르지 않는 2,831

[H (S) 일 16 옥텟 MD5 해시하자 RFC 1321]에 기술되어있다. K30 (k, ":", s)), 즉 스트링 k의 16 옥텟 해시, 콜론 및 문자열 s가되도록한다.

Hex (n)은 16 진수 MD5 해시 n을 32 진수 문자열로 표현합니다 (MD5는 대소 문자를 구분하므로 알파벳 문자는 항상 소문자로 표시).


현재의 i'am하여 다음 절차 :

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 (A1)), {nonce-value, ":"nc-value ",", cnonce-value ",", qop-value, ":", HEX (H (A2)}}))

응답 = 16 진수 (KD (54442ff1f394d9d0de1205cef4 d9cebe : OA6MG9tEQGm2hh : 00000001 : OA6MHXh6VqTrRk : 인증 : 15e3594677e51ade69715d1cb7d207ba)) 위의 절차에 따라

응답이다

26ef1190b643a36e879673066098379c


하지만 RFC 따라 응답 값은 다음

d388dad90d4bbd760a152321f2143af7

따라서 위에서 생성 된 응답은 rfc의 예에서 생성 된 응답과 다릅니다.

어떤 변경을 수행해야합니까?

답변

0

안녕하십니까, 응답을 올바르게 계산했으며 RFC2831의 예는 일관성이 없습니다.

0

A1 계산이 잘못되었습니다. chris에 대한 MD5 다이제스트 : elwood.innosoft.com : 비밀은 32 옥텟 16 진수, 원래 바이트 당 2 옥텟입니다. RFC 계산에서는 16 옥텟, 1 옥텟 = 1 바이트입니다.