gpt4 book ai didi

php - 在 MySQL 数据库中加密/解密密码

转载 作者:可可西里 更新时间:2023-11-01 06:40:04 25 4
gpt4 key购买 nike

我开始为我的网站创建一个用户系统,我想做的是加密密码,而不是明文。我正在使用 PHP/MySQL,所以我认为 crypt() 是一个很好的起点。但是,我对这样的密码学是全新的,而且我无法准确理解它是如何工作的。有谁知道如何在最简单的层面上实现一种将密码存储为加密字符串但始终能够解密而不会出现安全问题的方法?

最佳答案

密码应该经过哈希处理,而不是加密。也就是说,您不应该能够解密密码。相反,您应该比较哈希值。

  1. 用户设置密码$password = 'hX4)1z'
  2. 您获取密码的哈希值并存储到数据库:

#

$pw = hash_hmac('sha512', 'salt' . $password, $_SERVER['site_key']);
mysql_query('INSERT INTO passwords (pw) VALUES ('$pw');
  1. 客户稍后回来。他们输入密码,你比较一下:

#

mysql_query('SELECT pw FROM passwords WHERE user_id = ?');
//$pw = fetch

if ($pw == hash_hmac('sha512', 'salt' . $_REQUEST['password'], $_SERVER['site_key']) {

echo "Logged in";

}

关于php - 在 MySQL 数据库中加密/解密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059151/

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