如何使用php和mysql在数据库中安全存储密码?[副本]

ajsxfq5m  于 2023-05-21  发布在  PHP
关注(0)|答案(1)|浏览(144)

此问题已在此处有答案

How to use PHP's password_hash to hash and verify passwords(4个答案)
3天前关闭。
我将密码以纯文本形式存储在以下数据库中

下面显示了上述代码

的输出
我知道在数据库中以纯文本形式存储密码是一种安全威胁。在数据库中存储安全密码格式的最佳方法是什么?假设我们选择一些算法来保护密码,那么什么是最好的算法,最好的密码存储在数据库中的安全?

smdncfj3

smdncfj31#

密码哈希

您可以使用PHP password_hash()函数对密码进行多种算法的哈希运算。下面是一个例子:

$password = "dskjfk111!";
$hashed_password = password_hash($password, PASSWORD_DEFAULT);

您可以在第二个参数中提供不同的算法。我使用的是PASSWORD_DEFAULT,使用的是bcrypt算法

密码校验

由password_hash()函数生成的哈希密码具有算法、盐和成本作为输出(哈希密码)的一部分。因此,通过**password_verify()**函数,可以在不提供哈希算法的情况下验证密码。下面是一个例子:

$user_input = "dskjfk111!";
$result = password_verify($user_input);
if($result){
  echo "Password Valid"
}else{
  echo "Password Invalid"
}

md5()或sha1()

密码不要使用md5()或sha1()函数。正如你可以在www.example.com文档中阅读到php.net的那样。

相关问题