OAuth2. token 생성 알고리즘에 대해 말할 수 있는 위대한 신은 누구입니까

1, HMACSHA1 의 개념

HMACSHA1 은 < P > 가 SHA1 해시 함수에서 구성한 키 제어 해시 알고리즘으로 HMAC (해시 기반 메시지 검증 코드) 로 사용됩니다. 이 HMAC

프로세스는 키를 메시지 데이터와 혼합하고 해시 함수를 사용하여 혼합 결과를 해시하고 결과 해시 값을 해당 키와 혼합한 다음 해시 함수를 다시 적용합니다. 출력의 해시 값 길이는 16

비트이며 지정된 자릿수로 변환할 수 있습니다. < P > 는 마이크로소프트의 표준 정의다. 나는 읽어도 잘 이해하지 못했다. 그의 역할은 한 마디로 이해한다. 요청의 URL 이나 매개변수가 변조되었는지 확인하는 것이다. QQ

서명을 예로 들자면 발신자 (자신) 가 매개변수 등을 HMAC 알고리즘으로 계산하면 얻을 수 있는 해시 값 (즉, 서명값) 이다. 얻은 해시 값을 전달된 해시 값과 대조하여 검증한다. 그렇다면 요청이 정확하고 검증이 통과되며 한 걸음 더 나아가면 오류가 반환됩니다. < P > (아래 내용은 충분히 상세하고, 아직 이해하지 못하고, 메시지를 남겨주세요)

2, QQ OAuth 1. 에 사용되는 해시 알고리즘 < P >//< 요약 >

/// HMACSHA1 알고리즘이 암호화되어 ToBase64String

/// < /요약 >

/// < Param name="strText"> 서명 매개 변수 문자열 < /param>

/// < Param name="strKey"> 키 매개변수 < /param>

/// < Returns> 서명 값 (즉, 해시 값) < /returns>

public static string to base64 hmac (string strtext, string strkey)

{

hmac sha1 myhmacsha1 = new

byte [] bytetext = myhmacsha1.computehash (encoding.utf8.getbytes (strtext));

return system.convert.to base64 string (bytetext);

}

또는 다음과 같은 원리로 작성:

public static string hmac sha1 text (string encrypt text, string encrypt key) < p

string key;

메시지 = encrypttext;

키 = encrypt 키;

system.text.ascii encoding encoding = new system.text.asciiencoding ();

byte [] keybyte = encoding.getbytes (키);

hmac sha1 hmac sha1 = new hmac sha1 (keybyte);

byte [] messagebytes = encoding.getbytes (message);

byte [] hashmessage = hmac sha1.computehash (messagebytes);

return byte tostring (해시 메시지);

}

앞에 매개변수 의미를 설명하면 더 이상 설명하지 않습니다. COPY 는

를 사용할 수 있습니다. 페이지는

using system.security.cryptography; 를 참조하십시오

3, 다른 HMACSHA1 알고리즘의 표기법 소개

public static string hmac sha1 text (string encrypt text, string encrypt key)

hmac sha1.key = system.text.encoding.utf8.getbytes (encrypt key);

byte [] databuffer = system.text.encoding.utf8.getbytes (encrypttext);

byte [] hashbytes = hmacsha1.computehash (databuffer);

returnconvert.to base64 string (해시 bytes);

}