1.password_hash:建立密码杂凑值
2.password_verify:用帐户密码的杂凑值验证密码
3.cost参数(默认为10),当值调整越大,所需耗费的计算时间就会越多,可以自行测试
4.你想要越安全cost数字就越大,这样骇客破解就要以5、10年计算相对花费的成本就越高,但为了考虑使用者体验和server的资源消耗上,所以数字必须设定适当的数字。
5.在使用时,需要搭配第二个参数,推荐直接使用 PASSWORD_DEFAULT
每次处理时,都会在背后产生随机的SALT,
当然,也可以手动指定要使用哪一个SALT,但最好不要,就交给PASSWORD_DEFAULT来随机处理,会更加安全
<?php$password = 'PHPJQUERYGIT';//此为密码$passwordHash = password_hash( $password, PASSWORD_DEFAULT, ['cost' => 12]);echo $passwordHash ,'<br>';//密码转换出来的杂凑值if (password_verify($password, $passwordHash)) {//打入的密码与杂凑值验证 echo 'Password is valid!';} else { echo 'Invalid password.';}?>
资料库的用法
1.
$stmt->bindValue(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));
$passwordHash = password_hash( $_POST['password'], PASSWORD_DEFAULT, ['cost' => 12]);$stmt->bindValue(':password', $passwordHash, PDO::PARAM_STR);//$passwordHash是字串,所以第三个参数为设定字串