SHA256Managed Class 在不同机器上运行时会返回不同的结果吗?

发布于 2025-01-08 06:53:07 字数 460 浏览 0 评论 0原文

我正在尝试使用 API 密钥构建身份验证机制进行访问。

为了预防中继攻击,我使用当前日期时间对 API 密钥进行哈希处理并在服务器端进行检查。

使用相同的代码在客户端和服务器上进行哈希处理,我从两次调用中得到不同的结果。

IE:客户端散列其 API 密钥并将散列密钥和日期时间“盐”发送到服务器。

服务器获取预期的 api 密钥并使用客户端发送的日期时间进行哈希处理。

我的哈希值永远不匹配(客户端哈希值!=服务器哈希值)。

仅当我在单独的计算机上运行客户端和服务器时才会发生这种情况(实际上另一个开发人员正在尝试编写客户端部分)

当我在本地计算机上测试时一切正常(运行客户端和服务器部分并尝试身份验证)。

问题 给定相同的输入,.NET SHA256Managed 类 ComputeHash 方法在不同计算机上运行时会返回不同的结果吗?

I am attempting to build an authentication mechanism using API keys for access.

As a precaution against relay attacks, I am hashing the API key with the current DateTime and checking on the server side.

Using the same code to hash on both the client and server, I get different results from each of the two calls.

I.E: the Client hashes its API key and sends the hashed key and the datetime "salt" to the server.

The server takes the expected api key and hashed with the datetime sent from the client.

My hashes never match(Client hash != server hash).

This only occurs when I am running the client and server on seperate machines(actually another developer is attempting to write the client portion)

Everything works fine when I test on my local machine(running both client and server portions and attempting the authentication).

Question
Given the same input, will the .NET SHA256Managed class ComputeHash method return different results when run on different computers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

惟欲睡 2025-01-15 06:53:07

给定相同的输入,.NET SHA256Managed 类 ComputeHash 方法在不同计算机上运行时会返回不同的结果吗?

不会。如果确实如此,则说明实现已损坏(不太可能),或者输入不同。

Given the same input, will the .NET SHA256Managed class ComputeHash method return different results when run on different computers?

No. If it does than the implementation is broken (unlikely), or the input is different.

旧人 2025-01-15 06:53:07

如果您使用 string 请小心,因为不同计算机之间的编码、当前文化...可能会有所不同,这会给您带来不同的结果(因为输入在字节方面是不同的) )。

Take care if you use string because the encoding, current culture... might differ between different computers and that will give you different results (because the input is different byte-wise).

拥有 2025-01-15 06:53:07

哈希值应该始终相同。您的问题可能是因为您使用日期的字符串表示形式作为盐,并且由于区域设置,每台计算机上的字符串表示形式都不同。

The hash should always be the same. Your problem is likely because you are using the string representation of the date as the salt, and the string representation is different on each machine due to locale settings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文