Използвам метода на г-н Андрю Мур (Как използвате bcrypt за хеширане на пароли в PHP?) за хеширане на потребителска парола. Това, което направих е, че имам страница за регистрация и тя използва
$bcrypt = new Bcrypt(12);
$pass = $_POST['password']; //register password field
$hash= $bcrypt->hash($pass);
// then inserts $hash into database with users registered email (I've checked my mysql database and it indeed has an hashed item
След това имам страница за вход, състояща се от полета за имейл и парола. Мисълта ми е, че имейл адресите са уникални в моята база данни. Имайки предвид това, направих скрипт, при който първо проверява имейл адреса на потребителя, след което, ако има съществуващ, проверява паролата за хеширане с това
$bcrypt = new Bcrypt(12);
$email = $_POST['email']; //from login email field
$pass_l = $_POST['password']; // from login password field
$hash_1= $bcrypt->hash($pass_1);
$chk_email= $dbh->prepare("SELECT password FROM table WHERE email = ?");
$chk_email -> execute(array($email));
while($row = $chk_email->fetch(PDO::FETCH_ASSOC)){
$chk_pass = $row['password']; //inside a while loop to get the password
$pass_isGood = $bcrypt->verify($hash_1, $chk_pass);
var_dump($pass_isGood); // I'm getting false
}
Не съм сигурен какво правя погрешно, трябва да съм истина. И съм настроил табличното си поле на text
или дори varchar(256)