Dans le domaine de la sécurité des mots de passe, le hachage et le sel sont les technologies clés pour protéger les informations d'identification des utilisateurs. Le hachage est une fonction à une voie qui convertit le mot de passe brillant en texte en valeur d'une longueur fixe et ne peut pas être facilement inversé. L'ajout de sel peut augmenter la couche de sécurité supplémentaire en ajoutant des valeurs aléatoires au mot de passe avant le hachage, ce qui rend plus difficile pour un attaquant de deviner ou de casser le mot de passe en violence.
La méthode de David Hayden inclut l'utilisation de la méthode CREATESALT pour générer des nombres aléatoires et le convertir en chaîne Base64. La méthode CreatePasswordHash connecte le mot de passe au sel et utilise l'algorithme SHA1 pour utiliser l'algorithme SHA1 pour utiliser l'algorithme SHA1 pour utiliser la méthode FormsAuthentication.HashpasswordFormeningInfigfile.
Bien que le code de Hayden soit valide, il implique une conversion de chaîne inutile. Au lieu de cela, nous pouvons utiliser directement le réseau d'octets pour traiter le sel et le hachage.C # Méthode alternative
Michael Howard a fourni une méthode alternative dans le livre "Début ASP.NET Security". Génération de la méthodehash utilise des mots de passe brillants en texte et un tableau d'octets de sel en entrée. Il crée un nouveau tableau d'octets, qui est égal à la somme de la longueur du mot de passe et du réseau d'octets de sel. Les octets de mot de passe et de sel sont ensuite copiés sur le nouveau tableau d'octets. L'algorithme géré par SHA256 est utilisé pour calculer les valeurs de hachage. Pour convertir le texte en tableau d'octets, vous pouvez utiliser Encoding.Utf8.getBytes (String). Pour convertir le hachage en sa représentation de chaîne, vous pouvez utiliser convert.tobase64string.
Il est important de se rappeler que nous ne pouvons pas utiliser l'opérateur de nombre égal directement sur le tableau d'octets. Au lieu de cela, nous devons traverser deux tableaux et utiliser la méthode CompareByTearRays pour comparer manuellement chaque octet.
Best Practice
Il est généralement recommandé d'utiliser toujours un nouveau sel pour chaque mot de passe. Le sel n'a pas besoin d'être confidentiel, il peut donc être stocké avec du hachage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!