当我们设置SaltEnabled时,Microsoft Enterprise Library中HashProvider中的salt是如何生成的?
新机器随机吗?这是一些神奇的数字吗?
(我知道什么是盐,问题是企业库 HashProvider 中盐的实际值(value)是多少)
最佳答案
编辑:
有关示例实现,请参阅 Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.HashAlgorithmProvider。哈希步骤是:
要与散列文本进行比较,您必须使用:
public bool CompareHash(byte[] plaintext, byte[] hashedtext)
与重新散列和比较。如果您重新哈希,则会生成一个新的随机盐,而您就迷路了。
CompareHash 执行以下操作:
原来的:
“如果在 HashProvider 上启用了 salt,则提供者将生成一个随机字节序列,并将其添加到哈希中。如果将哈希值与未哈希值进行比较,则将从哈希值中提取 salt 并用于在比较之前散列未散列的值。”
和
“至于解码为散列值。这是无法完成的。在创建散列后,应该无法将其反转为原始值。
但是,您可以做的是通过相同的算法将未散列值与散列值进行比较并比较输出。”
来自 http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=10284
关于.net - Enterprise Library HashProvider 中的盐是什么? (SaltEnabled 键),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/126148/