【问题标题】:Password hashing on 32bit system then migrating to 64bit systems32 位系统上的密码散列然后迁移到 64 位系统
【发布时间】:2011-09-30 17:26:46
【问题描述】:

我在从 32 位系统迁移到 64 位系统时遇到了一个潜在问题。

系统对字符串运行两个“单向”加密算法。

但是,当我在 64 位系统上尝试相同的代码时,哈希值不同,现在这很好,但是有没有人有任何方法可以确保在将来升级到 64 位时仍然可以检索和匹配哈希值和超越?

不冒客户敏感密码的风险?或者曾经在没有加密的情况下存储原始密码或其他敏感数据?

【问题讨论】:

  • 你使用什么散列算法?任何常见的散列算法都不应该发生这种情况..
  • 这不应该发生。无论 32 位还是 64 位架构,哈希值都应该相同。您使用什么语言和库来生成哈希?你用的是什么哈希算法?您的标签提到了 Java PHP 和 Python。什么语言实际上有问题?还是全部 3 个?
  • Real 哈希算法具有明确定义的、独立于平台的输出大小。 MD5 有 128 位,这是一个常数。您使用的是什么糟糕的算法,它不提供这样的合约,因此不能跨平台使用?
  • 底层系统的位大小应该对结果没有影响,只是计算的效率如何。如果你得到不同的哈希值,这不是直接由于底层操作系统版本。
  • 我假设算法在不同的位系统上会表现不同,无论如何这是我的假设:(。似乎我不正确,但它仍然产生不同的哈希值。谢谢你的 cmets .

标签: java php python encryption


【解决方案1】:

基本上,只要确保您使用的是相同的算法即可。如果您的哈希值在相同的输入下不同,那么您使用的是不同的算法;对基础字长可能存在一些未说明的依赖关系。确保你不使用这些类型的算法,或者如果你使用了,它们对字长有非常明确的期望,并且这些东西可以被你覆盖。

【讨论】:

  • 感谢您的建议,我将对此进行检查,我已经意识到,由于 cmets 高于其位大小会影响这一点。 :(再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 2011-06-30
  • 2012-03-16
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 2013-09-17
相关资源
最近更新 更多