Descriptografando senhas criptografadas com PHP
Muitos aplicativos armazenam senhas de usuários com segurança usando algoritmos de criptografia como password_hash. No entanto, ao validar tentativas de login, é importante comparar a senha inserida com a versão criptografada e armazenada.
O problema da criptografia
password_hash emprega Bcrypt, um algoritmo de hashing, o que significa que a senha criptografada não pode ser revertida ou descriptografada. Este é um recurso de segurança que garante que mesmo que o banco de dados seja comprometido, os invasores não poderão acessar senhas em texto simples.
A solução: verificação de senha
Para validar senhas de usuários , use a função password_verify:
if (password_verify('input_password', $encrypted_password)) {
// Password matches!
} else {
// Invalid password.
}
Esta função compara a senha de entrada com a versão criptografada e retorna verdadeiro se corresponderem.
Modificando sua consulta SQL
Em vez de incluir o insira a senha na consulta SQL, use parametrização:
$sql_script = 'SELECT * FROM USERS WHERE username=?';
Isso protege contra ataques de injeção de SQL, evitando que usuários mal-intencionados manipulando sua consulta.
Exemplo
Aqui está um exemplo de uso de password_verify:
$username = $_POST['username'];
$input_password = $_POST['password'];
$sql_script = 'SELECT * FROM USERS WHERE username=?';
if ($result = $conn->query($sql_script, $username)) {
if ($user = $result->fetch_assoc()) {
if (password_verify($input_password, $user['password'])) {
// Login successful!
} else {
// Invalid password.
}
} else {
// User not found.
}
}
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3