Mot de passe
comment je peux securiser un PW et le recuperer quand l'internaute le perd ??
Merci
7 réponses
Sécuriser les mots de passe et prévoir leur récupération lorsque l'utilisateur les oublie constitue la problématique centrale, dans le cadre d'un système Windows 7 et Firefox 3.5.18. Plusieurs répondants recommandent de hacher les mots de passe avec un salt plutôt que de les chiffrer, car le hachage est une opération unidirectionnelle et empêche la restitution. D'autres précisent qu'un hachage n'est pas réversible, et que la récupération du mot de passe réel n'est pas possible ; en pratique, une réinitialisation par email ou par jeton temporaire est privilégiée. En pratique, il faut prévoir une réinitialisation sécurisée par e-mail avec jeton temporaire, plutôt que d'essayer de restituer un mot de passe stocké, afin de limiter les risques et les abus.
-
Dans quel langage?
-
en php
-
Ba si tu veux que ce soit bien sécurisé il faut le crypter de facon a ce qu'il ne puisse pas etre décrypter.
Donc ensuite la solution quand un utilisateur te dis qu'il a perdu son mot de passe tu lui en génére un aléatoire qu'il doit changer ;) -
si tu peux m'indiquer des liens STP.. car j'ai pas bien compris et je suis pas douée là ..
-
en gros quand quelqu'un a oublier son mot de passe il clique sur un lien "j'ai oublier mon mot de pass".
Ensuite tu lui demande des informations pour savoir de qui il s'agit.
Une fois que tu as la bonne personne tu génère un mot de passe aléatoire avec cette fonction
<?php
/***********************************/
/* Génère un mot de passe */
/***********************************/
// $size : longueur du mot passe voulue
function Genere_Password($size)
{
// Initialisation des caractères utilisables
$characters = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");
for($i=0;$i<$size;$i++)
{
$password .= ($i%2) ? strtoupper($characters[array_rand($characters)]) : $characters[array_rand($characters)];
}
return $password;
}
// Petit exemple
$mon_mot_de_passe = Genere_Password(10);
echo $mon_mot_de_passe;
?>
Puis tu lui envoi son nouveau mot de passe par mail :) -
Merci mais pour savoir est ce que c'est la bonne personne je vais tester sur la disponibilte de son mail dans la BD ; c'est ça ?? bon je vais chercher comment faire pour liu envoyer un mail et puis sécuriser le PW ... mais comme meme c'est plus clair maintenant :)
-
tu le stocke dans une base de donnée a l'aide d'un algorithme cryptage a clé unique : CF la documentation de php ou ces 2 fonctions :
function RIJNDAEL_encrypt($text){ $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CFB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $key = "This is a very secret key"; return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CFB, $iv)); } function RIJNDAEL_decrypt($text){ $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CFB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $key = "This is a very secret key"; //I used trim to remove trailing spaces return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_CFB, $iv)); }