使用password_hash时生成的哈希的最大长度?

gio*_*ozh 9 php password-encryption

我正在使用

password_hash($password, PASSWORD_BCRYPT);
Run Code Online (Sandbox Code Playgroud)

用于存储在数据库上的crypt密码.正如我所读到的,对生成的哈希没有长度限制,但我需要限制在我的数据库上创建一个字段可以适合所有密码(在最坏的情况下).如果我在纯文本中输入密码限制为20个字符,那么password_hahs()结果将如何变长?

Tim*_*per 18

password_hash文档:

目前支持以下算法:

PASSWORD_DEFAULT - 使用bcrypt算法(默认自PHP 5.5.0起).请注意,此常量旨在随着时间的推移而变化,因为新的和更强大的算法被添加到PHP中.因此,使用此标识符的结果长度可能会随时间而变化.因此,建议将结果存储在数据库列中,该列可以扩展到超过60个字符(255个字符将是一个不错的选择).

PASSWORD_BCRYPT- 使用CRYPT_BLOWFISH算法创建哈希.这将使用"$ 2y $"标识符生成标准的crypt()兼容哈希.结果将始终为60个字符的字符串,或者失败时为FALSE.

因此,使用时PASSWORD_BCRYPT,结果password_hash将是一个60个字符的字符串.