PHP<;5.5:password_hash兼容的密码散列


PHP < 5.5: password_hash compatible crypt hashing

好。我确实做了大量的研究,但我没有任何神秘/哈希知识。在我自己的机器上,我有php5.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;
    }
}

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

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

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

谢谢你的帮助,br

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

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

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

根据OP的请求:

如果在PHP<5.5

  • https://github.com/ircmaxell/password_compat/

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