0

好的。我真的做了很大的研究,但我没有任何加密/散列知识。在我自己的机器上,我有 php 5.5,我正在使用 password_hash 函数。我刚刚意识到,我的在线主机最高支持 PHP 5.4。

我有一个特殊的加密类,这就是为什么(希望)没有太多改变要做的原因。这是我的简单代码:

class Enigma {
    public static function hash($password) {
        return password_hash($password, PASSWORD_DEFAULT);
    }
    public static function verify($password, $hash) {
        if (password_verify($password, $hash)) return true;
        return false;
    }
}

正如您所看到的,这只是一个简单的覆盖,但第一次使用它。如何将 password_hash 和 password_verify 函数替换为 crypt 函数,以便将来与 passrowd_ 函数兼容?

例如。现在我将执行 crypt(),然后将结果存储在用户数据库中,并且将来当我将切换到 password_hash 和 password_verify 函数时,我希望这个加密密码能够工作,而不是强迫每个用户更改密码。

我希望在我的研究过程中我没有错过任何东西。我正在寻找简单、优雅、安全的解决方案:)。

谢谢你的帮助,br

更新:我读过这个(http://pl1.php.net/manual/en/function.password-hash.php):

password_hash() 使用强大的单向散列算法创建一个新的密码散列。password_hash() 与 crypt() 兼容。因此,由 crypt() 创建的密码哈希可以与 password_hash() 一起使用。

但是 crypt 有很多选择,我不太确定它们是否都兼容。

4

1 回答 1

3

根据OP的要求:

如果 PHP < 5.5,您可以使用密码兼容性包

当您希望使用 PHP 的 5.5password_hash()函数时,这尤其有用。

于 2014-04-14T17:57:21.600 回答