Ciao
Puoi servirti delle classi nel namespace System.Security.Cryptography. Ad esempio potresti fare così:
//Questa funzione genera un array di byte che possono essere
//usati come password e IV per l'algoritmo di criptazione\decriptazione
public byte[] GeneratePassword(string password)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] input = Encoding.UTF8.GetBytes(password);
return md5.ComputeHash(input, 0, input.Length);
}
//Crittografa un file con la password e l'IV specificati
public void Encrypt(string filePath, string password, string IV)
{
RijndaelManaged rijndael = new RijndaelManaged();
rijndael.IV = GeneratePassword(IV);
rijndael.Key = GeneratePassword(password);
byte[] inputBytes = File.ReadAllBytes(filePath);
byte[] outputBytes = rijndael.CreateEncryptor()
.TransformFinalBlock(inputBytes, 0, inputBytes.Length);
File.WriteAllBytes(filePath, outputBytes);
}
//Decrittografa un file con la password e l'IV specificati
public void Decrypt(string filePath, string password, string IV)
{
RijndaelManaged rijndael = new RijndaelManaged();
rijndael.IV = GeneratePassword(IV);
rijndael.Key = GeneratePassword(password);
byte[] inputBytes = File.ReadAllBytes(filePath);
byte[] outputBytes = rijndael.CreateDecryptor()
.TransformFinalBlock(inputBytes, 0, inputBytes.Length);
File.WriteAllBytes(filePath, outputBytes);
}
Luca