La communauté ALL HTML c'est 58491 membres à ce jour dont 0 inscrits aujourd'hui et 30 depuis une semaine.

Communauté ALL HTML : telnes

Cryptage des mots de passe

Cet article est actuellement publié sur le site.

Photo de telnes Article publié le jeudi 31 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 sur :

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.