Cifrado y descifrado de cadenas en C#: una forma simple y segura
¡Hola a todos! Soy un desarrollador C# principiante y tengo un problema con el cifrado de cadenas. Necesito guardar la contraseña de un usuario en la base de datos cifrada, y luego al iniciar sesión descifrarla y compararla con la contraseña ingresada. Probé usar algoritmos simples, pero el código resulta engorroso y, según entiendo, inseguro.
Esto es lo que escribí:
```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); // XOR simple
}
return Convert.ToBase64String(data);
}
```
Pero entiendo que esto es "cosa de niños" en términos de seguridad. He oído hablar de AES, pero no sé cómo usarlo correctamente con salt, initialization vector (IV) y key. Necesito un ejemplo funcional que:
1. Cifre la cadena de forma segura (preferiblemente AES-256).
2. Permita descifrarla de vuelta.
3. Use un IV aleatorio para cada cifrado.
4. Funcione en .NET 6+ y
No answers yet.
Inicia sesión para dejar una respuesta