Maison >développement back-end >C++ >Comment puis-je hacher et sel en toute sécurité en C #?
Introduction
La sécurité du mot de passe est cruciale dans toute application logicielle. La luttation et le sel sont deux technologies clés pour protéger les mots de passe qui ne sont pas divulgués.Code de Davidhayden: extensions de base et sel
Le fragment de code de Davidhayden fournit une implémentation de base des dissipations de mot de passe et du sel. Il utilise des classes d'authentification Forms pour diffuser le mot de passe afin de le stocker dans le fichier de configuration. Cependant, pour les blobs binaires tels que l'extension et le sel, la conversion entre la chaîne est considérée comme inutile.
Méthode C # alternative: extension avancée et sel
Les méthodes d'amélioration suivantes de "Début ASP.NET Security" incluent certaines fonctions d'amélioration:
Cette méthode utilise un algorithme SHA256 plus sûr et effectue des dispersions sur le tableau d'octets au lieu de la chaîne. Il garantit également que le sel de chaque mot de passe est unique.
<code class="language-csharp">static byte[] GenerateSaltedHash(byte[] plainText, byte[] salt) { HashAlgorithm algorithm = new SHA256Managed(); byte[] plainTextWithSaltBytes = new byte[plainText.Length + salt.Length]; for (int i = 0; i < plainText.Length; i++) { plainTextWithSaltBytes[i] = plainText[i]; } for (int i = 0; i < salt.Length; i++) { plainTextWithSaltBytes[plainText.Length + i] = salt[i]; } byte[] hash = algorithm.ComputeHash(plainTextWithSaltBytes); return hash; }</code>Autres précautions
Le texte peut être converti en tableau d'octets. Les ombles
peuvent être converties en chaîne avecEncoding.UTF8.GetBytes(string)
Convert.ToBase64String
Le sel ne doit pas être réutilisé et il doit être stocké avec le mot de passe posé. Convert.FromBase64String
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!