gpt4 book ai didi

PHP密码保护足够安全

转载 作者:行者123 更新时间:2023-12-04 14:09:04 25 4
gpt4 key购买 nike

在我开始之前,我想为再次提出这个话题而道歉,正如许多用户所做的那样,但是通过我所做的研究,我对我的发现并不满意。我只是希望能在这里提出一些真正有用的东西。

由于 md5 或 sha1 被认为是不好的做法(即使在使用盐时也是如此???),我尝试创建这个函数来散列我的密码

$password = $_POST['password']; // lets say that my password is: my_sercretp@ssword123
function encrypt_the_password($password){
$salt = "lorem_ipsumd0l0rs1t@m3tc0ns3ct3tur@d1p1sc1ng3lit";
return hash('sha256', $salt.$password);// can use also different algorithm like sha512 or whirlpool
}
$hashed_password = encrypt_the_password($password);

请注意,我在只有一个用户的个人网站中使用它,我。如果有多个用户,我想出这样的事情:

$password = $_POST['password'];
function generate_salt() {
$salt = uniqid(md5("lorem_ipsumd0l0rs1t@m3tc0ns3ct3tur@d1p1sc1ng3lit".microtime()));
$salt = hash('sha256', $salt);// can use also different algorithm like sha512 or whirlpool
return $salt;
}
function encrypt_the_password($password,$salt){
return hash('sha256', $salt.$password);// can use also different algorithm like sha512 or whirlpool
}
$hashed_password = encrypt_the_password($password,generate_salt());

这是否足够安全(在每种情况下)还是可以进一步改进???


我的编辑:我尝试使用 crypt() 函数想出一些新的东西。如果网站只有一个用户管理员,这是我的代码:

$password = $_POST['password'];
$salt = "L0r3mIpsUmD0l0rS1tAm3t";
$hashed_password = crypt($password', '$2a$12$' . $salt);

如果网站有多个用户:

$password = $_POST['password'];
function generate_salt() {
$salt = uniqid(sha1("L0r3mIpsUmD0l0rS1tAm3tc0ns3CT3tur4d1p1sc1ng3lit".microtime()));
$salt = substr(sha1($salt), 0, 22);
return $salt;
}
$hashed_password = crypt($password', '$2a$12$' . generate_salt());

这没问题还是需要改进???

最佳答案

通过不编写自己的算法来改进它。您的算法不安全,因为您的 salt 是恒定的,并且您仅使用 SHA256 的一次迭代进行散列,这在计算上很便宜。

相反,使用 Bcrypt ,这在计算上既昂贵又由知道自己在做什么的人验证,因此它比您的解决方案安全得多。

关于PHP密码保护足够安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699839/

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