Descifrar contraseñas cifradas con PHP
Muchas aplicaciones almacenan contraseñas de usuario de forma segura utilizando algoritmos de cifrado como contraseña_hash. Sin embargo, al validar los intentos de inicio de sesión, es importante comparar la contraseña ingresada con la versión cifrada y almacenada.
El problema del cifrado
password_hash emplea Bcrypt, un algoritmo de hash, lo que significa que la contraseña cifrada no se puede revertir ni descifrar. Esta es una característica de seguridad que garantiza que incluso si la base de datos está comprometida, los atacantes no puedan acceder a las contraseñas de texto sin formato.
La solución: verificación de contraseña
Para validar las contraseñas de los usuarios , utilice la función password_verify:
if (password_verify('input_password', $encrypted_password)) {
// Password matches!
} else {
// Invalid password.
}
Esta función compara la contraseña ingresada con la versión cifrada y devuelve verdadero si coinciden.
Modificación de su consulta SQL
En lugar de incluir la ingrese la contraseña en la consulta SQL, use la parametrización:
$sql_script = 'SELECT * FROM USERS WHERE username=?';
Esto protege contra ataques de inyección SQL al evitar que usuarios malintencionados manipulando su consulta.
Ejemplo
Aquí hay un ejemplo del uso de contraseña_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.
}
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3