Maison >développement back-end >C++ >Comment PBKDF2 sécurise-t-il le stockage des mots de passe dans .NET (2012) ?

Comment PBKDF2 sécurise-t-il le stockage des mots de passe dans .NET (2012) ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-23 12:41:10824parcourir

How PBKDF2 Protects Passwords in .NET (2012)

Sécurité des mots de passe : au-delà du simple cryptage

Le stockage des mots de passe à l'aide d'un simple cryptage est insuffisant. Le hachage, une fonction cryptographique unidirectionnelle, offre une solution beaucoup plus efficace en transformant les mots de passe en valeurs uniques, irréversibles et de longueur fixe.

Gestion sécurisée des mots de passe en 2012 : meilleures pratiques

En 2012, PBKDF2 (Password-Based Key Derivation Function 2) était l'algorithme recommandé pour les applications .NET. La classe Rfc2898DeriveBytes a facilité un processus de hachage sécurisé à travers ces étapes clés :

Étape 1 : Génération de sel

<code class="language-csharp">byte[] salt = new byte[16];
new RNGCryptoServiceProvider().GetBytes(salt);</code>

Étape 2 : Création de hachage

<code class="language-csharp">var pbkdf2 = new Rfc2898DeriveBytes(password, salt, 100000);
byte[] hash = pbkdf2.GetBytes(20);</code>

Étape 3 : concaténer le sel et le hachage

<code class="language-csharp">byte[] hashBytes = new byte[36];
Array.Copy(salt, 0, hashBytes, 0, 16);
Array.Copy(hash, 0, hashBytes, 16, 20);</code>

Étape 4 : Encodage Base64 pour le stockage

<code class="language-csharp">string savedPasswordHash = Convert.ToBase64String(hashBytes);</code>

Étape 5 : Vérification du mot de passe

<code class="language-csharp">byte[] hashBytes = Convert.FromBase64String(savedPasswordHash);
byte[] salt = new byte[16];
Array.Copy(hashBytes, 0, salt, 0, 16);
var pbkdf2 = new Rfc2898DeriveBytes(password, salt, 100000);
byte[] hash = pbkdf2.GetBytes(20);

// Compare hash values here...</code>

Le nombre d'itérations (100 000 dans ces exemples) dans PBKDF2 contrôle le coût de calcul du craquage. Bien que 10 000 soit le minimum suggéré, ajustez cette valeur en fonction des besoins de performances de votre application. Un nombre d'itérations plus élevé augmente la sécurité mais peut avoir un impact sur la vitesse de l'application.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn