创建sha1哈希时,machineKey validationKey是如何使用的?

时间:2009-03-06 19:48:03

标签: .net asp.net hash validation

<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在这方面没有任何作用?

2 个答案:

答案 0 :(得分:6)

validationKey用于加密视图状态数据,并确保回发的内容有效。

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

编辑:抱歉,这并没有真正回答你的问题。 validationKey仅在验证您的视图状态数据未被篡改时使用,并且您引用的SHA1是您要与validationKey一起使用的算法类型。在创建SHA1哈希时不使用它,它仅适用于asp.net页面。

答案 1 :(得分:0)

就我而言,我发现验证密钥用于创建sha1 hmac键控散列。

相关问题