22-04-2014, 02:32 PM
Je remonte un peu ce sujet, mais comme je viens de voir un autre site qui le faisait, je pense qu'il serait bon de le rappeler (bien que nombre d'entre nous le sache déjà):
Stocker les mots de passe
Je viens de recevoir ce mail, ayant "oublié" mon mot de passe sur un jeu:
Il ne faut JAMAIS stocker un mot de passe en clair.
Voici un récent tutoriel de Developpez.com pour apprendre à stocker les mots de passe correctement via PHP 5.5.
Pour l'accent anglais, computerphile propose aussi une vidéo sur ce thème.
Le MD5 n'est plus très sûr: il existe des collisions (mêmes entrées générant les mêmes hashs), mais pas encore de moyen vraiment fonctionnel de trouver une entrée correspondant à un hash salé. Il pourra être suffisant pour un petit jeu.
Mieux vaut passer aux plus gros calibres que sont Sha et BCrypt. Le premier est plus rapide, mais le second permet d'avoir la complexité que l'on souhaite.
Il en existe d'autres (PBKDF2, scrypt...).
Dans tous les cas, ne pas oublier d'y ajouter son grain de sel, aléatoire
De façon simple: il n'est pas normal de pouvoir récupérer son mot de passe, surtout quand un pass est généralement utilisé sur plusieurs sites par le joueur.
Il faut proposer:
Ressource SO:
Storing hashed password
Stocker les mots de passe
Je viens de recevoir ce mail, ayant "oublié" mon mot de passe sur un jeu:
Citation :Votre pseudo : Xenos
Votre mot de passe : test
N'hésitez pas à vous rendre dans la rubrique contact si vous avez la moindre question ou le moindre problème.
Il ne faut JAMAIS stocker un mot de passe en clair.
Voici un récent tutoriel de Developpez.com pour apprendre à stocker les mots de passe correctement via PHP 5.5.
Pour l'accent anglais, computerphile propose aussi une vidéo sur ce thème.
Le MD5 n'est plus très sûr: il existe des collisions (mêmes entrées générant les mêmes hashs), mais pas encore de moyen vraiment fonctionnel de trouver une entrée correspondant à un hash salé. Il pourra être suffisant pour un petit jeu.
Mieux vaut passer aux plus gros calibres que sont Sha et BCrypt. Le premier est plus rapide, mais le second permet d'avoir la complexité que l'on souhaite.
Il en existe d'autres (PBKDF2, scrypt...).
Dans tous les cas, ne pas oublier d'y ajouter son grain de sel, aléatoire
De façon simple: il n'est pas normal de pouvoir récupérer son mot de passe, surtout quand un pass est généralement utilisé sur plusieurs sites par le joueur.
Il faut proposer:
- Soit la possibilité de le réinitialiser directement, mais dans ce cas on risque de perdre tous ses comptes si on se fait piquer son e-mail
- Soit proposer un "token" qui servira de mot de passe temporaire, ce qui permettra au joueur légitime (connaissant le mdp original mais s'étant fait pirater son mail) de conserver son compte
Ressource SO:
Storing hashed password