相关疑难解决方法(0)

php password_hash和password_verify不匹配

我正在尝试从PHP 5.5中调用一个名为password_hash()的新函数.

无论我做什么,$ hash和$ password都不匹配.

$password = "test";

$hash = "$2y$10$fXJEsC0zWAR2tDrmlJgSaecbKyiEOK9GDCRKDReYM8gH2bG2mbO4e";



if (password_verify($password, $hash)) {
    echo "Success";
}
else {
    echo "Error";
}
Run Code Online (Sandbox Code Playgroud)

php passwords php-password-hash

10
推荐指数
3
解决办法
3万
查看次数

密码验证与php版本5.4.16无效

我有一个旧版本的PHP,这是5.4.16,我从github下载了 password.php

这使得password_hash()完美无缺.我也将它插入数据库但是当我尝试使用password_verify()时,我得到了无效.我只想在数据库中提取一行数据,以便为自己创建一些可以登录的内容.

我的数据库是(数据库工作正常,因为在我尝试添加登录之前,我有一个列表,从同一个数据库中提取数据只是不同的表并且工作正常)

$db = new PDO('mysql:dbname=database;host=hostip', 'root', 'password'); 
Run Code Online (Sandbox Code Playgroud)

我在php中创建了这个,在我的表中插入一行

/*Inserts*/

$password = password_hash('asdf', PASSWORD_BCRYPT, array('cost' => 10));
$username = 'admin';

$insertQuery = $db->prepare("
        INSERT INTO et_todo (username, password)
        VALUES (:username, :password)
    ");

$insertQuery->execute(array(
        'username' => $username,
        'password' => $password
    ));
Run Code Online (Sandbox Code Playgroud)

尝试验证我这样做了

/* Selects */

$selectQuery = $db->prepare("
        SELECT id, username, password
        FROM et_todo
        WHERE id = :id
    ");

$selectQuery->execute(array(
        'id' => 9  //should be 1 but 9 because I tried few testings 
    ));

$rows = $selectQuery->rowCount() …
Run Code Online (Sandbox Code Playgroud)

php mysql

-1
推荐指数
1
解决办法
262
查看次数

标签 统计

php ×2

mysql ×1

passwords ×1

php-password-hash ×1