<machineKey validation="SHA1" validationKey="<64-byte key>"
validationKey究竟做了什么?假设我使用SHA1创建哈希。 validationKey如何发挥作用?
考虑以下代码:
HMACSHA1 hashSha = new HMACSHA1(_validationKey);
byte[] ret = hashSha.ComputeHash(bytes, offSet, count);
return ret;
我们正在生成一个新的_validationkey,对吗?然后我们获取字节并在ComputeHash中散列它们。 _validationKey有什么意义?当我们以某种方式验证哈希时,我们是否需要它?
如果它在这个过程中没有任何作用,那么以下是真的吗?
我有一个长度为80字节的字节数组,最后20个字节由一个asp.net sha1哈希组成,然后是前60个字节,如果sha1哈希值应该匹配最后20个字节
validationKey在这方面没有任何作用?
答案 0 :(得分:6)
validationKey用于加密视图状态数据,并确保回发的内容有效。
编辑:抱歉,这并没有真正回答你的问题。 validationKey仅在验证您的视图状态数据未被篡改时使用,并且您引用的SHA1是您要与validationKey一起使用的算法类型。在创建SHA1哈希时不使用它,它仅适用于asp.net页面。答案 1 :(得分:0)
就我而言,我发现验证密钥用于创建sha1 hmac键控散列。