【问题标题】:password_hash() PASSWORD_DEFAULT PHP 5.5密码哈希()密码默认值 PHP 5.5
【发布时间】:2015-01-20 04:57:05
【问题描述】:

来自 password_hash() 函数:

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

这是否意味着每当 PASSWORD_DEFAULT 更改时,我将无法使用新的 php 版本,否则 password_verify() 将无法正确检查旧用户密码?

【问题讨论】:

    标签: php


    【解决方案1】:

    不,password_verify() 会识别所使用的算法,因为它嵌入在您要验证的哈希中:这是哈希的第一部分(例如$2y$)所指示的

    【讨论】:

    • 我想补充一点,您可以使用password_needs_rehash php.net/manual/en/function.password-needs-rehash.php 来确定您的旧密码是否需要重新哈希,然后您可以更新旧密码
    • 这就是我的想法,但我不确定 password_verify 是否可以识别旧的(尚未)算法。谢谢
    猜你喜欢
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多