insertar un usuario con una contraseña hasheada con PDO

Para insertar un usuario con una contraseña hasheada en una base de datos usando PDO (PHP Data Objects), puedes seguir los siguientes pasos:

  1. Asegúrate de tener la librería de hash de contraseñas de PHP (password_hash) incluida en tu código. Puedes hacer esto usando la función require_once o include_once.
  2. Crea una conexión a tu base de datos usando PDO. Puedes hacer esto con el siguiente código:

...
        $host = 'localhost';
        $dbname = 'nombre_de_tu_base_de_datos';
        $username = 'nombre_de_usuario';
        $password = 'contraseña';
        
        try {
            $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
            // set the PDO error mode to exception
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch(PDOException $e) {
            echo "Error de conexión: " . $e->getMessage();
        } 
    

Hashea la contraseña del usuario usando la función password_hash. Esto te devolverá una cadena hasheada que puedes almacenar en la base de datos.

$password = 'contraseña_del_usuario';
$password_hashed = password_hash($password, PASSWORD_DEFAULT);  
    

Prepara una consulta SQL para insertar el usuario y la contraseña hasheada en la base de datos. Esto puede hacerse con el siguiente código:

$sql = "INSERT INTO usuarios (nombre_de_usuario, contraseña) VALUES (?, ?)";
$stmt = $conn->prepare($sql);            
        

Ejecuta la consulta usando los valores del usuario y la contraseña hasheada.

$stmt->execute([$nombre_de_usuario, $password_hashed]);          
        

Es importante tener en cuenta que debes usar un algoritmo de hash seguro para proteger las contraseñas de tus usuarios. La función password_hash de PHP utiliza un algoritmo seguro por defecto, pero es recomendable especificar el algoritmo que se va a usar para asegurarte de que tu código siga siendo seguro incluso cuando los algoritmos se vuelvan obsoletos. Por ejemplo, puedes usar PASSWORD_BCRYPT en lugar de `PASSWORD







Publicar un comentario

0 Comentarios