【发布时间】:2015-07-14 14:58:06
【问题描述】:
一个网站传给我,我想弄清楚它使用什么类型的密码加密。
这是我创建的测试帐户的密码:$2a$08$kFdK6FeCZbFq8ZySfKlogu3lrRKnhT5yK8T3I2qXhOQSVuGtPfJhe
解密方法或加密类型将非常有用。 谢谢。
【问题讨论】:
标签: database encryption passwords password-encryption
一个网站传给我,我想弄清楚它使用什么类型的密码加密。
这是我创建的测试帐户的密码:$2a$08$kFdK6FeCZbFq8ZySfKlogu3lrRKnhT5yK8T3I2qXhOQSVuGtPfJhe
解密方法或加密类型将非常有用。 谢谢。
【问题讨论】:
标签: database encryption passwords password-encryption
格式是 bcrypt 的。如果是这样,你就不能“解密”这个密码,因为它经历了一个不可逆的散列过程。但是您应该能够通过使用您的测试帐户的密码和 8 的“成本因素”调用 bcrypt 来验证是否使用了 bcrypt。您可以使用 online calculators 进行快速测试。
【讨论】:
您不能,因为它不是加密密码,而是密码哈希(有时称为单向加密)。这是存储密码的正确方法。我猜您正在使用 PHP,您可以在 password_hash 手册页上阅读相关内容。
您真的不应该从散列密码倒退到密码。当您需要验证时,请致电password_verify。它使用相同的散列算法对用户的明文密码进行散列,并将其与散列后的密码进行比较。
您可能想要撤消密码的另一种情况是用户丢失密码。相反,允许用户通过电子邮件链接、短信等方式创建新密码...
以可解密格式存储密码会导致embarrassing incidents。
【讨论】:
$2a 表示它是使用单向哈希函数 bcrypt 制作的(搜索 here 以获取 2a)