【问题标题】:How can I decrypt passwords hashed using the MD5 algorithm from a Drupal database? [closed]如何解密使用 Drupal 数据库中的 MD5 算法散列的密码? [关闭]
【发布时间】:2012-05-06 02:32:05
【问题描述】:

我的项目需要所有用户及其密码的列表。 Drupal 在应用 MD5 哈希后存储这些密码。如何获取用户的原始密码?

【问题讨论】:

  • 从不有理由解密其他用户的密码!另外“我的项目需要所有用户及其密码的列表”这句话应该让你非常怀疑
  • 等等,什么?你要我帮你偷一堆用户名和密码!?
  • kingCrunch 和 DOK,感谢您对用户隐私的支持。但这个项目不是社交网络或任何公共网站。在这个项目中,管理员自己正在注册用户。所以可能会丢失用户的密码。所以管理员需要一些下载选项,他可以通过密码获取所有用户。

标签: php drupal md5


【解决方案1】:

MD5 是一种单向哈希函数。没有重要的方法可以逆转它,这就是为什么它(和其他单向哈希函数)用于存储密码的原因。但是,您也许可以使用rainbow tables 尝试反转哈希,但有效性取决于密码的复杂性和使用的盐(如果使用了)。彩虹表在时间和计算资源方面也非常昂贵。

我建议您重新考虑为什么需要密码。通常,使用用户密码是一个坏主意。那里可能有替代解决方案。

【讨论】:

    【解决方案2】:

    如果它们已经在数据库中 - 你只能通过暴力破解来获取它们(这确实需要一段时间;即实际上你不能)。 除此之外:

    1. 在每次注册时向管理员发送一封包含密码的电子邮件
    2. 对另一个数据库中的表的额外写入
    3. 关闭 md5(它到底有什么用?O-)

    【讨论】:

    • 真的建议公开用户密码?!
    • 这取决于系统的使用位置;如果你在你的网络中使用它并为一个有 10 人的办公室使用它——这到底是什么……;我曾经遇到过这样的情况,人们总是忘记密码,并且没有“重置密码”功能
    • 这绝对是绝对禁止,完全独立于它只是供内部使用,或公共使用,或者它是否为 2 或 20 亿用户。如果开发人员忘记实施“重置密码”,那是开发人员的错,而不是用户的错,尤其不是暴露密码的理由!即使他的用户将他们的密码写在一张纸上并将其放入钱包中,它也比这更安全......
    • 1.问题是“如何”而不是“我应该”(我相信这两点都很好地涵盖了); 2. 即使使用 md5 - 用户密码也可以暴露;不是你的超级印章会让一切变得更安全
    • 1.在这种情况下,“如何”是无关紧要的。这就像向一个孩子解释如何偷车一样。 2.a) md5 本身使其至少 更多 更耗时(因此在大多数情况下无利可图),但通常开发人员 bI) 至少更喜欢 sha1 和 b。 II) 不只是散列 unsalted 密码。 -- 某事“不够安全”是否意味着可以,甚至应该忽略它,因为“那又如何?”
    猜你喜欢
    • 2016-11-03
    • 1970-01-01
    • 2019-02-15
    • 2014-09-09
    • 2011-03-30
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多