【发布时间】:2011-09-30 17:26:46
【问题描述】:
我在从 32 位系统迁移到 64 位系统时遇到了一个潜在问题。
系统对字符串运行两个“单向”加密算法。
但是,当我在 64 位系统上尝试相同的代码时,哈希值不同,现在这很好,但是有没有人有任何方法可以确保在将来升级到 64 位时仍然可以检索和匹配哈希值和超越?
不冒客户敏感密码的风险?或者曾经在没有加密的情况下存储原始密码或其他敏感数据?
【问题讨论】:
-
你使用什么散列算法?任何常见的散列算法都不应该发生这种情况..
-
这不应该发生。无论 32 位还是 64 位架构,哈希值都应该相同。您使用什么语言和库来生成哈希?你用的是什么哈希算法?您的标签提到了 Java PHP 和 Python。什么语言实际上有问题?还是全部 3 个?
-
Real 哈希算法具有明确定义的、独立于平台的输出大小。 MD5 有 128 位,这是一个常数。您使用的是什么糟糕的算法,它不提供这样的合约,因此不能跨平台使用?
-
底层系统的位大小应该对结果没有影响,只是计算的效率如何。如果你得到不同的哈希值,这不是直接由于底层操作系统版本。
-
我假设算法在不同的位系统上会表现不同,无论如何这是我的假设:(。似乎我不正确,但它仍然产生不同的哈希值。谢谢你的 cmets .
标签: java php python encryption