Avatar ·

¿Cómo usar correctamente bcrypt para hashing de contraseñas en PHP?

Hola a todos. Soy un desarrollador PHP principiante y actualmente estoy trabajando en un sistema de registro y autenticación de usuarios. Leí que almacenar contraseñas en texto plano es una muy mala práctica y que se debe usar hashing. Encontré información sobre bcrypt, pero no entiendo del todo cómo aplicarlo correctamente en PHP.

Probé usar password_hash() y password_verify(), pero no estoy seguro de estar haciéndolo bien. Aquí un ejemplo de mi código:

<?php
// Registro
$password = $_POST['password'];
$hash = password_hash($password, PASSWORD_DEFAULT);
// Guardo $hash en la base de datos...

// Autenticación
$input_password = $_POST['password'];
$stored_hash = // obtengo de la base de datos
if (password_verify($input_password, $stored_hash)) {
    echo "¡Éxito!";
} else {
    echo "Contraseña incorrecta";
}
?>

Tengo varias preguntas:

  1. ¿Es suficiente usar simplemente PASSWORD_DEFAULT o es necesario especificar explícitamente