【发布时间】:2018-09-03 17:04:12
【问题描述】:
我正在尝试使用 bcrypt 类,但在我想使用验证码时无法正常工作。它总是散列一个新密码,所以我无法登录。
<?php
$password = Bcrypt::hashPassword($_POST['mdp_user']);
$pwdVerify = Bcrypt::checkPassword($_POST['mdp_user'], $password);
$sql = 'SELECT * FROM tgn_users WHERE login="' . $_POST[ 'login' ] . '" AND mdp_user="' . $password . '"';
echo $sql;
$req = mysqli_query( $connexion, $sql )or die( mysqli_error( $connexion ) );
if ( mysqli_num_rows( $req ) > 0 ) {
$nom_user = $_SESSION['nom_user'];
$prenom_user = $_SESSION['prenom_user'];
$_SESSION[ 'islog' ] = "connect";
//header( 'Location: ../../profile.php' );
} else {
$_SESSION[ 'login' ] = $_POST[ 'login' ];
$_SESSION[ 'mdp_user' ] = $_POST[ 'mdp_user' ];
$_SESSION[ 'message' ] = "Erreur de log et/ou de pwd";
//header( "Location: " . $_SERVER[ 'HTTP_REFERER' ] );
}
?>
这是官方文档。我是 bcrypt 的新手,我真的不明白如何找到解决方案。请帮忙!
<?php
require_once 'Bcrypt.php';
// hash the password => returns hashed password
Bcrypt::hashPassword($password);
// check $password against the $hashedPassword => returns true/false
Bcrypt::checkPassword($password, $hashedPassword);
?>
【问题讨论】:
-
PHP 已经自带了
password_*API,查看docs -
您需要验证行,而不是哈希。
-
如果您使用的版本早于 5.5.0(您不应该使用),您可以使用 Anthony 制作的this library
标签: php hash login passwords bcrypt