gpt4 book ai didi

php - 在不要求所有用户更改密码的情况下重新散列密码

转载 作者:行者123 更新时间:2023-12-01 22:35:37 26 4
gpt4 key购买 nike

一位前开发人员使用了 PHP hash()使用 SHA256 算法存储密码哈希值。为了提高系统的安全性,我想开始使用 crypt() 和 Blowfish 算法(不幸的是我们没有 PHP 5.5,因此没有 password_hash()不可用)。

由于 SHA256 是一种不可逆的哈希算法,是否有一种方法可以在不要求所有人重设密码的情况下开始使用带有加盐密码的 crypt()

最佳答案

你应该使用 compatibility library然后。当您迁移到 5.5 时,它会让您更轻松。

在不询问用户密码的情况下重新散列......好吧,你可以等到下次用户登录时,然后使用password扩展的password_verify()功能。如果失败,那么您可以回退到旧的 SHA256 哈希。如果 SHA256 哈希匹配,那么您可以使用 password_hash() 重新哈希密码并将其保存在旧哈希的位置:

if (password_verify($password, $hash)) {
// Matches...
} elseif (hash('sha256', $password) == $hash) {
// Matches...
$newHash = password_hash($password);
// Save $newHash in the old hash's place
} else {
die('Invalid password...');
}

从技术上讲,可以破解很多哈希值,但是这样做有太多问题(你不会得到所有的哈希值,这很可能是不可行的,它甚至可能不合法等)。

关于php - 在不要求所有用户更改密码的情况下重新散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23987734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com