c# - HMACSHA1 SSL 问题

标签 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)));

但是,当运行 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/

相关文章:

html - 浏览器未在 HTTPS 中缓存图像(HTTP 工作正常)。即使使用缓存控制 : public

java - 使用 SAAJ 从 keystore 中选择特定的客户端证书

C# Lotus Notes - 多个 .nsf 文件

c# - WPF xaml Visual Studio 不断自动更改到我的资源的路径

c# - .NET 中的文件访问被拒绝

c# - Ajax 重新排序列表不可拖动

javascript - 判断url是true还是false

c# - 组合框在 SelectionChanged 事件中仍然具有旧值

c# - 删除最后一行以外的任何行后,如何对自动增量列值重新排序?

node.js - 在 GKE 上的 StatefulSet 中运行的 node.js API 上的 SSL