Как machineKey validationKey используется при создании хэша sha1? - PullRequest
2 голосов
/ 06 марта 2009
<machineKey validation="SHA1" validationKey="<64-byte key>"

Что именно делает validationKey? Скажем, я создаю хеш с SHA1. Как validationKey влияет на это?

Рассмотрим этот код:

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

Мы генерируем новый ключ _validation, верно? Затем мы берем наши байты и хешируем их в ComputeHash. Какой смысл _validationKey? Нужно ли нам это, когда мы каким-то образом проверяем хеш?

А если он не играет никакой роли в этом процессе, то верно ли следующее?

У меня есть байтовый массив длиной 80 байтов, а последние 20 байтов состоят из хэша asp.net sha1, а затем первые 60 байтов, если хеш sha1 должен соответствовать последним 20

validationKey не играет никакой роли в этом?

Ответы [ 2 ]

6 голосов
/ 06 марта 2009

Ключ validationKey используется для шифрования данных состояния просмотра и проверки того, что то, что возвращается при обратной передаче, действительно.

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

РЕДАКТИРОВАТЬ: Извините, это действительно не ответил на ваш вопрос. ValidationKey используется только при проверке того, что ваши данные состояния представления не были подделаны, а SHA1, на который вы ссылаетесь, представляет собой тип алгоритма, который вы хотите использовать с validationKey. Он не используется при создании хэша SHA1, он только для страниц asp.net.

0 голосов
/ 09 марта 2009

В моем случае я обнаружил, что ключ валидации используется для создания хэша с ключом sha1 hmac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...