所有在线示例都显示了 crypt 的使用,如下所示:
$pass = crypt('something','$6$rounds=5000$anexamplestringforsalt$');
但是每个人都说你不应该定义回合或盐。
那么我应该如何使用它呢?
我也遇到了一个问题:当我运行上面的代码时,它只运行 50 轮而不是 5000 轮,就好像系统正在停止它一样。
任何帮助将不胜感激。
//- 解决方案 -//
我发现其中一些很有用:
用于生成盐:
这是生成盐的随机方式
$randomString = random_bytes(32);
Base 64 编码,确保某些字符不会对 crypt 造成问题
$salt = base64_encode($randomString);
对于散列:
$hashed = crypt($passwordInput, '$6$'.$salt);
确认:
if (crypt($passwordInput, $hashed) == $hashed) {
// Valid action
} else {
// Invalid action
}
** 特别感谢@lathspell帮助我们找到上述解决方案 **