我正在查看在 SO 上的很多答案中推荐的 PHPass 库。但是当我查看生成的密码时,我会看到如下内容:
现在其中一些只是 1234,有些则更复杂一些。有些真的很复杂(大写、小写、字符)等。但是,我仍然看到前 7 个字符总是相同的,无论密码是什么。这不是很容易猜到吗?我不太了解彩虹或字典攻击,但这看起来很奇怪。这是平常的吗?这是一个错误吗?该框架是否足以在生产环境中使用?
这第一个字符只是散列方法的“描述”。多亏了这一点,您将能够识别并重用该方法来检查密码。即使在不同的服务器上或更改散列新密码的方法后(旧的仍然会被识别)。
您可以在此处阅读有关此前缀和新前缀的信息http://www.php.net/security/crypt_blowfish.php