Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle fonction utiliser pour hacher les mots de passe dans MySQL ?

Ce n'est pas nécessairement que vous ne devriez pas utiliser MD5, c'est plutôt que vous ne devriez pas utiliser juste MD5, car cela vous rend vulnérable aux attaques par table arc-en-ciel (une table arc-en-ciel est une table de valeurs de hachage précalculées - si votre mot de passe est même à distance commun ou simple, l'attaquant n'a qu'à rechercher le hachage et il connaît votre mot de passe en clair. )

À tout le moins, vous devriez ajouter un sel à chaque mot de passe afin que toute table arc-en-ciel existante soit inutile, forçant l'attaquant à générer une toute nouvelle table arc-en-ciel juste pour votre base de données de mots de passe.

Mieux encore, utilisez un sel différent pour chaque mot de passe de votre base de données, par exemple le nom d'utilisateur auquel il est associé, de sorte qu'un attaquant ne puisse même pas générer une table arc-en-ciel pour l'ensemble de votre base de données et doive déchiffrer chaque entrée séparément.

MD5 est également un algorithme très rapide. La vitesse est l'ennemi en matière de cracking - plus il faut de temps pour générer un hachage, plus il faut de temps pour chaque tentative d'un pirate informatique. Quelque chose de simple comme hacher le texte en clair 100 fois avec un nouveau sel supplémentaire à chaque fois serait à peine perceptible (voire pas du tout) pour un utilisateur se connectant à votre site, mais cela augmenterait le temps nécessaire pour forcer brutalement un mot de passe par le même 100 fois.

Beaucoup, beaucoup plus de détails ici :http://www.codinghorror.com/blog/ archives/000953.html