HMACSHA1 SSL问题

Ism*_*ail 5 c# asp.net ssl sha1 hmac

我有以下代码从密码创建哈希,然后将其与数据库中存储的哈希密码进行比较.所有工作都优于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)));
Run Code Online (Sandbox Code Playgroud)

但是,当通过https/ssl运行时,编码的密码不同,因此用户无法登录.

在通过SSL时计算哈希时,.net框架是否会做一些不同的事情?

如果我单步执行代码并复制编码密码并更新我的数据库然后通过SSL我可以登录.

有任何想法吗?

非常感谢

Sal*_*qui 1

请尝试按照 MSDN 文章中的定义设置全球化设置:http://msdn.microsoft.com/en-CA/library/39d1w2xf%28v=vs.100%29.aspx

这将确保 hash.key 在您的应用程序中是统一的,进而确保每次使用密钥计算时计算出的哈希值都是相同的。