【问题标题】:What type of password hash [closed]什么类型的密码哈希[关闭]
【发布时间】:2020-01-11 17:39:21
【问题描述】:

!MJXAy....(41 个字符,A-Z a-z 0-9) 我有一个旧网络应用程序的密码列表,但不再有创建/验证哈希的来源。 我认为它可能是一个 django 应用程序,但不能确定。 我正在寻找哈希的类型或源链接,以便我可以验证登录。

有什么想法/建议吗?

【问题讨论】:

  • 如果旧程序使用了盐并且您不知道该盐可能是什么,那么您可能只想要求所有用户通过电子邮件或其他方式重置他们的密码。有很多常见的散列算法,如果你知道明文密码及其散列值,你可以尝试一下。
  • 没有盐,我想我可能只需要擦除密码设置并从头开始。我的谷歌搜索没有返回任何以 ! 开头的哈希值

标签: hash passwords password-hash


【解决方案1】:

您可能只是“禁用”了 40 个字符的哈希值。

!* 通常放在哈希的开头或结尾,以可逆地“禁用”帐户(因为这些字符从未出现在大多数哈希中,从而使包含它们的任何哈希都无法匹配)。

如果需要重新激活帐户,可以简单地删除明显无效的“禁用”字符,恢复原始密码而无需知道原始密码或与用户交互。 p>

如果所有散列以感叹号开头,则可能所有散列都因某种原因被故意禁用。

而且对于它的价值,我知道的两种 Django 格式看起来像这样(来自 the Hashcat example-hashes page,都是明文'hashcat'):

Django (PBKDF2-SHA256): 
pbkdf2_sha256$20000$H0dPx8NeajVu$GiC4k5kqbbR9qWBlsRgDywNqC2vd9kqfk7zdorEnNas=

Django (SHA-1):
sha1$fe76b$02d5916550edf7fc8c886f044887f4b1abf9b013

这两个都是加盐的,似乎与您的字符集不匹配。您的哈希可能是自定义哈希,最后一步是 base64 转换(但没有尾随 =?)。

我能看到的最接近的是转换为 base64 的 ASCII MD5 哈希和转换为 base64 的二进制 SHA26 哈希,但它们都是 44 个字符。

您最好的选择可能是删除 ! 并尝试使用 mdxfind 验证它们,这将尝试许多不同种类和链的散列、编码和截断。

【讨论】:

  • 你的位置,在所有方面。经过进一步挖掘,这些数据库行没有被激活。因为他们有一个activation_key 列,它有一个值。 Django 确实将所有有用的项目保存在该字段中。谢谢。
猜你喜欢
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 2020-11-13
  • 2012-10-14
  • 1970-01-01
  • 2013-05-14
相关资源
最近更新 更多