La plupart des développeurs utilisent l'algorithme du MD5 ou SHA1 pour chiffrer les mots de passe en base de données.
Une fois celui-ci stocké en bdd, on compare le mot de passe chiffré avec le hash MD5 enregistré en base de données pour autoriser une authentification par exemple.
Ainsi l'administrateur du site ou un pirate ne peut connaître les mots de passes inscrits.
Avec ce genre de chiffrement, il y a peu de chance pour un hacker de récupérer les mots de passe utilisateurs car celui-ci n'est pas réversible. Cependant l'attaque par dictionnaire est toujours possible.
En utilisant par exemple cet outil de reverse MD5 hash vous pourrez retrouver un mot de passe si celui-ci est inscrit dans un des dictionnaires utilisés.
En rentrant par exemple le hash ab4f63f9ac65152575886860dde480a1, cet outil vous retournera azerty.
Pour éviter que votre mot de passe ou celui de vos clients ne soit percé à jour, on va utiliser une petite fonction en PHP permettant de renforcer le hash MD5 généré afin que celui-ci ne soit pas déchiffrable par les dictionnaires.
On ajoutera pour cela une chaîne statique devant le mot de passe avant de générer le hash MD5.
function improve_md5($string) { // Exemple de chaîne statique qui sera concaténée avec la chaîne originale. $static_string = 'DSB4zT9'; // On renvoi le hash MD5 de la chaîne statique concaténée à la chaîne originale. return md5($static_string . $string); }
Vous devrez utiliser cette fonction pour l'enregistrement en base de donnée et la comparaison lors de la connexion.
Attention toutefois de ne pas modifier votre chaîne statique lorsque vous avez fait votre premier enregistrement en base de donnée!
MISES A JOUR DE L'ARTICLE |
Cela s’appelle un salt
http://www.commentcamarche.net/faq/8821-comment-bi...
Oui en effet pour les connaisseurs c'est un salt afin de ne pas être embêté par les rainbow-tables. Mais pour le commun des mortels c'est plus simple à comprendre
Enfin je pense