Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso descriptografar um hash de senha em PHP?


Bcrypt é um algoritmo de hash unidirecional, você não pode descriptografar hashes. Use password_verify para verificar se uma senha corresponde ao hash armazenado:
<?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.';
}

No seu caso, execute a consulta SQL usando apenas o nome de usuário:
$sql_script = 'SELECT * FROM USERS WHERE username=?';

E faça a validação de senha em PHP usando um código semelhante ao exemplo acima.

A maneira como você está construindo a consulta é muito perigosa. Se você não parametrizar a entrada corretamente, o código ficará vulnerável a ataques de injeção de SQL. Veja esta resposta do Stack Overflow sobre como evitar injeção de SQL.