<machineKey validation="SHA1" validationKey="<64-byte key>"

validationKey到底是做什么的?假设我使用SHA1创建哈希。 validateKey如何发挥作用?

考虑以下代码:
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对此没有作用吗?

最佳答案

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

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

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

关于.net - 创建sha1哈希时如何使用machineKeyvalidationKey?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/620178/

10-11 23:05