OAuth2. token 생성 알고리즘에 대해 말할 수 있는 위대한 신은 누구입니까
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);
}