使用PHP在2019年保护密码的最佳方法

ups*_*988 0 php encryption passwords password-encryption

我只是想知道在2019年使用PHP加密密码的最佳方法是什么。我正在使用这种方法,但是许多人告诉我,这是目前不安全的方法:

$password_Protect = md5($_POST["password"]);
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,但直到2017年才发现。那么,最好的方法是什么?

谢谢

Cli*_*ono 7

使用password_hash()

同时检查password_verify()

PHP passwordhash()

还要检查

password_verify()

例:

$password = "ABCDabcd";

echo password_hash($password, PASSWORD_BCRYPT, array('cost'=>12));
Run Code Online (Sandbox Code Playgroud)

该示例应输出如下内容:

$ 2y $ 12 $ N6FSH8yRo0YMQ4oPJHN1vOkv7GfK3OhVp22H / AjGoVLY.5Dm7ECYS

验证:假设用户输入了密码,然后将其存储在输入变量中;

$input = 'ABCDabcd';

$hashed_password = '$2y$12$N6FSH8yRo0YMQ4oPJHN1vOkv7GfK3OhVp22H/AjGoVLY.5Dm7ECYS';

if(password_verify($input,$hashed_password)){

echo 'password is valid';

}else{

echo 'Password is invalid';

}
Run Code Online (Sandbox Code Playgroud)

这应该返回的密码是有效的。