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

Login PHP usando dados MySQL e senha com hash


Em vez de usar MD5 ou tentar descriptografar a senha - como outros aqui sugeriram - simplesmente use o password_hash() função que verifica automaticamente se a senha está correta para você.

Criptografe a senha assim:
$unencrypted_password = 'secret!'; 
$encrypted_password = password_hash($unencrypted_password,  PASSWORD_DEFAULT);

Em seguida, insira em seu banco de dados assim:
INSERT INTO users (encrypted_password, username) VALUES ($encrypted_password, $username);

Quando você quiser verificar se a senha está correta, selecione a senha do banco de dados com:

SELECT encrypted_password FROM users WHERE username = $username;

Por fim, verifique se a senha está correta usando passoword_verify() :
$correct = password_verify($unecnrypted_password, $encrypted_password);
if($correct == true) {
    echo 'correct password!';
} else {
    echo 'password incorrect!';
}

Tenha cuidado para proteger contra injeção de SQL, pois o código acima é vulnerável a ela.