Maison >développement back-end >C++ >Comment puis-je améliorer le hachage et le salage des mots de passe en C # pour de meilleures performances?
Optimisation du hachage et du salting du mot de passe en C #
La sécurité robuste des mots de passe s'appuie fortement sur le hachage et le salage efficaces. Bien qu'il existe des méthodes existantes, elles impliquent souvent des conversions de cordes qui ont un impact négatif sur les performances. Cet article présente une approche plus efficace en utilisant des opérations binaires directes en C #.
Le code suivant démontre une méthode raffinée:
<code class="language-csharp">static byte[] GenerateSaltedHash(byte[] plainText, byte[] salt) { using (HashAlgorithm algorithm = new SHA256Managed()) { byte[] plainTextWithSaltBytes = new byte[plainText.Length + salt.Length]; Array.Copy(plainText, plainTextWithSaltBytes, plainText.Length); Array.Copy(salt, 0, plainTextWithSaltBytes, plainText.Length, salt.Length); return algorithm.ComputeHash(plainTextWithSaltBytes); } }</code>
Cette méthode améliorée concatène directement le mot de passe en texte clair et le sel comme des tableaux d'octets avant le hachage, éliminant les frais généraux des conversions de chaîne. Cela conduit à une augmentation significative des performances.
Rappelez-vous: chaque mot de passe doit avoir un sel unique, stocké en toute sécurité aux côtés du hachage correspondant. Comparaison directement des tableaux d'octets à l'aide de ==
vérifie les références, pas les valeurs. Utilisez une fonction de comparaison de tableau d'octets dédiée (comme SequenceEqual
de System.Linq
) pour une vérification précise.
En mettant en œuvre ces meilleures pratiques, vous pouvez assurer une solide protection par mot de passe sans sacrifier les performances.
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!