Ich bin nicht vertraut mit dieser Bibliothek php-mysqlidb
aber von dem Aussehen davon denke ich nicht, dass das so funktionieren wird, wie Lawrence in den Kommentaren darauf hingewiesen hat.
Was können Sie tun müssen, ist in der Tat diese laufen als Ausgangs query: https://github.com/joshcam/PHP-MySQLi-Database-Class#running-raw-sql-queries
Auch ich bin nicht sicher, ob Sie die MySQL-Funktion richtig verwenden, werfen Sie einen Blick auf diese: https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_aes-encrypt
Sie sollten es vermeiden, das Passwort als verschlüsselte Zeichenfolge zu speichern (die entschlüsselt werden kann, manche würden sagen, dies ist eine schlechte Sicherheit/Praxis).
Stattdessen; Warum würden Sie die eingebaute Hash-Funktion von PHP nutzen?
Werfen Sie einen Blick auf: http://php.net/manual/en/function.password-hash.php
Wenn ein Benutzer das Klartext-Passwort eingibt, z $my_password = '123456'
- hash es wie folgt aus:
$hashed_password = password_hash($my_password, PASSWORD_DEFAULT);
speichern Sie dann den Wert von $hashed_password
in der Datenbank.
Wenn Sie wollen, dann überprüfen, ob der Benutzer das richtige Passwort eingegeben hat, nehmen Sie einfach die Benutzereingabe und den gespeicherten Wert in der Datenbank und verwenden Sie diese Funktion, wenn das Hash-Spiel vergleichen:
http://php.net/manual/en/function.password-verify.php
So:
$login_password = '123456';
$db_hashed_pass = '$2y$10$.vG....'; // this value is loaded from db for that user
if (password_verify($login_password, $db_hashed_pass)) {
// password is correct
} else {
// password is wrong
}
Auf diese Weise ist es sicherer und auch wenn Ihr db gefährdet ist; Ich glaube, niemand wird in der Lage sein zu trainieren, was das verwendete Passwort war, da es nur ein Hash des ursprünglichen Passworts ist.
Warum versuchen Sie ein Passwort zu verschlüsseln? Ein Passwort sollte immer gehashed werden! –
'AES_ENCRYPT' ist eine Funktion, die als Wert übergeben wird. –
oh. Ich kannte die Hash-Methode nicht. Ich habe gerade über den Unterschied zwischen beiden gelesen. Aber ich finde es eine Schande, Punkte zu verlieren, wenn es eine legitime Frage ist, aber nur, dass ich nicht den richtigen Ansatz verwendet habe ... – sincos