2009-03-06 3 views
2
<machineKey validation="SHA1" validationKey="<64-byte key>" 

validationKey는 정확히 무엇을합니까? SHA1을 사용하여 해시를 생성한다고 가정 해보십시오. validationKey는 어떻게 작동합니까? 오른쪽sha1 해시를 생성 할 때 machineKey validationKey는 어떻게 사용됩니까?

HMACSHA1 hashSha = new HMACSHA1(_validationKey); 
byte[] ret = hashSha.ComputeHash(bytes, offSet, count); 
return ret; 

우리는 새로운 _validationkey을 생성하는 :

이 코드를 생각해? 그런 다음 ComputeHash에서 바이트를 가져 와서 해시합니다. _validationKey의 요점은 무엇입니까? 해쉬의 유효성을 검사 할 때 필요합니까?

그리고 프로세스에 어떤 역할도 없다면 다음과 같은 사실입니까?

나는 80 바이트 길이의 바이트 배열을 가지고 있고, SHA1은 지난 20

validationKey의 아무 역할을하지 일치해야합니다 해시 경우 지난 20 바이트, asp.net의 SHA1 해시 후 첫 60 바이트로 구성 그거?

답변

6

validationKey는 viewstate 데이터를 암호화하고 포스트 백에서 되돌아 오는 내용이 올바른지 확인하는 데 사용됩니다.

http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.validationkey.aspx

편집 : 죄송합니다, 정말 귀하의 질문에 대답하지 않았다. validationKey는 viewstate 데이터가 변조되지 않았 음을 확인하고 참조하는 SHA1이 validationKey와 함께 사용할 알고리즘의 유형 일 때만 사용됩니다. SHA1 해시를 만들 때 사용되지 않으며 asp.net 페이지에만 사용됩니다.

+0

따라서 80 바이트 길이의 바이트 배열이 있고 sha1 해시가 마지막 20 개와 일치해야한다면 마지막 20 바이트는 asp.net sha1 해시로 구성됩니다. validationKey는 그 역할을하지 못합니까? – lynn

+0

msdn에 따르면 validationKey는 enableViewStateMAC가 true 일 때만 사용됩니다. – Nick

+0

다음 질문에 대해서는 enableViewStateMac이 validationKey를 사용하지만 어떻게 월요일에 저장할지 묻습니다. 감사. – lynn

0

내 경우에는 유효성 검사 키가 sha1 hmac 키 해시를 만드는 데 사용된다는 것을 발견했습니다.

관련 문제