La communauté ALL HTML c'est 58027 membres à ce jour dont 0 inscrits aujourd'hui et 29 depuis une semaine.
Article publié le mercredi 30 août 2006 par telnes.
Cet article est classé dans les catégories « Internet et Intranet, PHP »
Comment crypter les passwords des utilisateurs dans sa base de données ? Vous trouverez ici quelques explications pour comprendre la démarche à suivre pour crypter les mots de passe de vos utilisateurs.
Ce tutorial explique les rudiments de stockage des mots de passe dans une base
Il est extrêment important de ne jamais stocker les mots de passe des utilisateurs de votre site "en clair" dans votre base de données.
Pourquoi ?
Tout simplement parce que si une personne réussit à aller dans votre base (si, si, ça arrive), il aura accès aux informations de la base. C'est à dire en général mail, login, pass
Et alors ?
Et bien, en général les gens pensent que les informations sont bien gardés et comme, souvent, ils n'ont pas 10 000 mots de passe dont ils se servent, avec ce même login et un mot de passe, on a une chance sur deux de pouvoir se connecter sur son compte mail ! Et s'il a bien pris soin d'en mettre un différent, on à toujours accès à son compte sur le site, bref et je ne parle pas du compte admin du site ! (usurpateur)
Comment on fait alors ?
Lors de l'enregistrement, on enregistre le mot de passe de la personne crypté et par la suite lors de la connexion de l'utilisateur, on crypte de la même manière son mot de passe pour le comparer à celui dans la base.
Ok , mais comment on fait ca ?
Il existe une fonction md5() (pour en citer une) http://fr.php.net/manual/fr/function.md5.php qui est une fonction non bijective (pour les puristes), c'est à dire qu'elle ne fonctionne uniquement que dans un sens !
pass --------->> MD5 ---------->> chaine de 32 charactères
C'est cette chaine de 32 charactères que l'on stocke dans la base. Si on possède la chaine cryptée, c'est extrêment long de chercher la chaine de caractère d'origine, voir irréalisable, ET c'est exactement ce que l'on veux :).
L'inconvénient, c'est que si il y à perte de mot de passe, il faut en recréer un, l'envoyer par mail (pas crypté), qu'il modifira par la suite, à sa connexion sur le site de manière à avoir son mot de passe bien à lui.
La fonction md5 est intégré à mysql, on peut donc crypter au moment de la requête. Elle existe également en JavaScript, ce qui permet de crypter coté client et de ne pas faire circuler le mot de passe, sur le réseau.
Voila j'éspère que vous avez compris le principe.
Plus d'informations :
Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.
Discutez et échangez sur ce thème dans notre forum PHP - SQL.
14/05/2008 à 16 h 21
Police non prise en charge (3 réponses)
11/05/2008 à 22 h 46
question sur fwrite ??? (1 réponse)
11/05/2008 à 05 h 43
Petite aide (0 réponse)
08/05/2008 à 20 h 43
probleme cookie (domain) (2 réponses)
07/05/2008 à 23 h 03
$_session ne fonctionne pas ??? (4 réponses)