Manejo de las contraseñas perdidas en PHP

RECU-0582 (Recurso Ejemplo)

Descripción

En este ejemplo se describe, en PHP, cómo generar una nueva contraseña, utilizando un número aleatorio y un algoritmo hash sha256 para encriptarla. Enviándola por email a un usuario que ha perdido su anterior contraseña.

Ejemplos

<?php
/* Generate new password. */

$new_password = '';
for ($i = 0; $i < 8; $i++) {
   $new_password .= chr(mt_rand(33, 126));
}
/* Define a salt. */
define('SALT', 'flyingturtle');

/* Encrypt new password. */
$encrypted_password = hash('sha256',SALT . $new_password);

/* Save new encrypted password to the database. */
$st = $db->prepare('UPDATE users
                        SET password = ?
                        WHERE username = ?');
$st->execute(array($encrypted_password, $clean['username']));
/* Email new plain text password to user. */

mail($clean['email'], 'New Password', "Your new password is: $new_password");
?>

Contenidos relacionados

Pautas
Área: Desarrollo » Seguridad » Control de Acceso y Autenticación
Código Título Tipo Carácter
LIBP-0285 Manejo de contraseñas perdidas Libro de pautas Directriz Obligatoria