Verschlüsselung und Entschlüsselung eines Strings in C#: Einfacher und sicherer Weg
Hallo zusammen! Ich bin ein Anfänger in C#-Entwicklung und habe ein Problem mit der Verschlüsselung von Strings. Ich muss ein Benutzerpasswort in der Datenbank verschlüsselt speichern und es dann beim Login entschlüsseln und mit dem eingegebenen Passwort vergleichen. Ich habe einfache Algorithmen ausprobiert, aber der Code wird umständlich und, wie ich verstehe, unsicher.
Hier ist, was ich geschrieben habe:
```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); // einfaches XOR
}
return Convert.ToBase64String(data);
}
```
Aber ich verstehe, dass das in Bezug auf Sicherheit "Kindergarten" ist. Ich habe von AES gehört, weiß aber nicht, wie man es richtig mit Salt, Initialisierungsvektor (IV) und Key verwendet. Ich brauche ein funktionierendes Beispiel, das:
1. Einen String zuverlässig verschlüsselt (vorzugsweise AES-256).
2. Ermöglicht, ihn wieder zu entschlüsseln.
3. Für jede Verschlüsselung einen zufälligen IV verwendet.
4. In .NET 6+ funktioniert und