Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso decrittografare un hash di password in PHP?

Bcrypt è un algoritmo di hashing unidirezionale, non puoi decifrare gli hash. Usa password_verify per verificare se una password corrisponde all'hash memorizzato:

<?php
// See the password_hash() example to see where this came from.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}

Nel tuo caso, esegui la query SQL utilizzando solo il nome utente:

$sql_script = 'SELECT * FROM USERS WHERE username=?';

E fai la convalida della password in PHP usando un codice simile all'esempio sopra.

Il modo in cui stai costruendo la query è molto pericoloso. Se non parametrizzi correttamente l'input, il codice sarà vulnerabile agli attacchi SQL injection. Vedi questa risposta Stack Overflow su come prevenire l'iniezione di SQL.