Chiffrement et déchiffrement d'une chaîne en C# : une méthode simple et sécurisée
Bonjour à tous ! Je suis un développeur C# débutant et j'ai un problème avec le chiffrement de chaînes. Je dois stocker le mot de passe d'un utilisateur dans une base de données sous forme chiffrée, puis le déchiffrer lors de la connexion et le comparer avec le mot de passe saisi. J'ai essayé d'utiliser des algorithmes simples, mais le code devient lourd et, je le comprends, peu sécurisé.
Voici ce que j'ai écrit :
```csharp
public static string Encrypt(string text)
{
byte[] data = Encoding.UTF8.GetBytes(text);
for (int i = 0; i < data.Length; i++)
{
data[i] = (byte)(data[i] ^ 0xFF); // simple XOR
}
return Convert.ToBase64String(data);
}
```
Mais je comprends que c'est "du niveau maternelle" en termes de sécurité. J'ai entendu parler d'AES, mais je ne sais pas comment l'utiliser correctement avec un sel, un vecteur d'initialisation (IV) et une clé. J'ai besoin d'un exemple fonctionnel qui :
1. Chiffre de manière fiable une chaîne (de préférence AES-256).
2. Permet de la déchiffrer en retour.
3. Utilise un IV aléatoire pour chaque chiffrement.
4. Fonctionne dans .NET 6+ et