Ich habe eine php (Symphony) Web-Anwendung und eine Android-Anwendung, die auf die gleiche Datenbank zugreifen. Das Passwort-Feld in der Tabelle ist mit Symphony mit Bcrypt verschlüsselt und sein Wert begann mit $2y$13
, habe ich diesen Code php mein Passwort von der android-Anwendung eingegeben zu verschlüsseln:
if(isset($_POST['password'])){
$password = $_POST['password'];
$pas_hash= password_hash("$password", PASSWORD_BCRYPT);
$sql = 'SELECT * FROM tbl_auth WHERE password = :pas_hash';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':pas_hash', $pas_hash, PDO::PARAM_STR);
$stmt->execute();
if($stmt->rowCount())
{
$result="true";
}
elseif(!$stmt->rowCount())
{
$result="false";
}
// send result back to android
echo $result;
}
das Problem ist, dass der Wert von pas_hash
begann mit $2y$10
und als ich password_verify()
verwendet, liefert diese Funktion true
Ergebnis. Ich habe nicht, was ist das Problem, weil die letzte $result
an meine Android-Anwendung gesendet wurde false
. Danke.
Ich sehe nicht, dass Sie überhaupt 'password_verify' verwenden trotzdem sagen. Das ist dein Problem. –
das ist keine Verschlüsselung, es ist ein Hash. –
Sie verwenden auch die falsche Methode –