我有以下代码,它从密码创建哈希,然后将其与数据库中存储的哈希密码进行比较。在 http 上一切正常。这适用于在 c# 4.0 下运行的 asp.net webforms 应用程序
HMACSHA1 hash = new HMACSHA1();
hash.Key = Encoding.Unicode.GetBytes(password);
encodedPassword = Convert.ToBase64String(hash.ComputeHash(Encoding.Unicode.GetBytes(password)));
但是,当运行 https/ssl 时,编码后的密码不同,因此用户无法登录。
在通过 SSL 计算哈希时,.net 框架会做一些不同的事情吗?
如果我单步执行代码并复制编码后的密码并更新我的数据库,那么我就可以通过 SSL 登录。
有什么想法吗?
非常感谢
最佳答案
请尝试按照位于 http://msdn.microsoft.com/en-CA/library/39d1w2xf%28v=vs.100%29.aspx 的 MSDN 文章中的定义设置全局化设置
这将确保 hash.key 在您的应用程序中是统一的,这反过来又将确保每次使用 key 计算的哈希值都是相同的。
关于c# - HMACSHA1 SSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14457741/