par
Hermès » 10 nov. 2006, 13:30
Une autre solution est d'avoir l'information de la date dans le mot de passe :
- tu prend un mot-clef de N caractères (par exemple "abcd")
- tu concatènes la date
- tu crypte tout ça (pas du MD5 vu que ça te renvoie un truc trop long, il faut trouver un bon algorithme qui ne transforme pas une clef de 8 caractères en un truc de 32 (ou pire) caractères).
- tu file le résultat crypté à l'utilisateur
Quand l'utilisateur utilises son mot de passe tu le décrypte, tu vérifies que les N premiers caractères correspondent bien à ton mot clef "abcd" et tu regarde les derniers caractères pour savoir à quelle date le mot de passe a été généré. Tu compares avec la date courante, s'il est trop vieux tu bloque le mot de passe.
Quel est l'intérêt ?
-> tu n'as pas de mots de passe à sauvegarder en base de donnée, il faut juste que tu gardes secret le ou les mots-clef (ici on a juste "abcd" devant mais tu peux aussi mettre un autre mot-clef derrière).
Cette méthode est pas mal utilisée pour les récupérations de fichiers sur un site. Lorsque tu dis à l'utilisateur qu'il a la possibilité de télécharger un fichier en suivant un lien précis mais que ce lien ne sera valide que pendant un certain temps, tu peux utiliser un cryptage MD5 et avoir une clef très longue, tu t'en fout vu que ça sera l'adresse du lien et que l'utilisateur ne l'apprendra pas par coeur. Mais quand c'est un mot de passe, il vaut mieux qu'il puisse le retenir sans avoir à le sauver dans un fichier pour faire du copié/collé quand il en a besoin.
Une autre solution est d'avoir l'information de la date dans le mot de passe :
- tu prend un mot-clef de N caractères (par exemple "abcd")
- tu concatènes la date
- tu crypte tout ça (pas du MD5 vu que ça te renvoie un truc trop long, il faut trouver un bon algorithme qui ne transforme pas une clef de 8 caractères en un truc de 32 (ou pire) caractères).
- tu file le résultat crypté à l'utilisateur
Quand l'utilisateur utilises son mot de passe tu le décrypte, tu vérifies que les N premiers caractères correspondent bien à ton mot clef "abcd" et tu regarde les derniers caractères pour savoir à quelle date le mot de passe a été généré. Tu compares avec la date courante, s'il est trop vieux tu bloque le mot de passe.
Quel est l'intérêt ?
-> tu n'as pas de mots de passe à sauvegarder en base de donnée, il faut juste que tu gardes secret le ou les mots-clef (ici on a juste "abcd" devant mais tu peux aussi mettre un autre mot-clef derrière).
Cette méthode est pas mal utilisée pour les récupérations de fichiers sur un site. Lorsque tu dis à l'utilisateur qu'il a la possibilité de télécharger un fichier en suivant un lien précis mais que ce lien ne sera valide que pendant un certain temps, tu peux utiliser un cryptage MD5 et avoir une clef très longue, tu t'en fout vu que ça sera l'adresse du lien et que l'utilisateur ne l'apprendra pas par coeur. Mais quand c'est un mot de passe, il vaut mieux qu'il puisse le retenir sans avoir à le sauver dans un fichier pour faire du copié/collé quand il en a besoin.