2017-10-03 2 views

Répondre

3

Vous avez raison. Comme les hachages sont généralement plus courts que les données qu'ils représentent, il y aura des moments où deux entrées différentes produiront le même hachage. Nous appelons cela une collision de hachage . Pour réduire les chances de cela, choisissez un meilleur algorithme de hachage. Note la norme pour ce qui est considéré comme un bon algorithme de hachage est en constante évolution, vérifiez this S.O. poster.

Il est dangereux de stocker des hachages dans votre base de données pour une autre raison. Il existe des listes en ligne de hachages complétés utilisant des algorithmes de hachage courants. Donc, vous pouvez prendre une de ces listes (appelée une table arc-en-ciel), et les mots de passe hachés dans votre base de données, puis déterminer quels hachages correspondent à quels mots de passe en faisant une simple recherche dans la table arc-en-ciel.

Étant donné que de nombreux utilisateurs choisiront l'un des mauvais mots de passe les plus courants (par exemple qwerty), il s'agit d'un énorme problème. La solution à cela est appelée hachage et le sel. Où vous ajoutez d'abord une grande chaîne de caractères aléatoire à votre mot de passe avant le hachage. Ce qui signifie que même deux des mêmes mots de passe entraînent des hachages différents dans votre base de données. Ceci est mieux expliqué here et here.

Généralement c'est une mauvaise idée d'écrire ce code vous-même. Essayez d'authentifier avec un autre service comme Facebook ou Google. Leur code est susceptible d'être mieux testé et conçu que tout ce qu'un développeur individuel pourrait proposer.

+0

Ce n'est pas une documentation officielle et je ne suis pas expert en sécurité, mais j'ai écrit à ce sujet plus en détail l'année dernière. Vérifiez-le si vous aimez [ici] (https://michaelhancock.github.io/Hash-and-Salt/index.html). J'espère que cela aide –