565
Chương 14: Mật mã
Array.Clear(iv,0,iv.Length);
cryptoStream.Clear();
cryptoStream.Close();
srcFile.Close();
destFile.Close();
}
}
// Phương thức dùng để giải mật hóa một file đã-được-mật-hóa bằng
// giải thuật Triple DES với key và iv cho trước.
private static void DecryptFile(string srcFileName,
string destFileName, byte[] key, byte[] iv) {
// Tạo các stream để truy xuất file nguồn và file đích.
Stream srcFile =
new FileStream(srcFileName, FileMode.Open, FileAccess.Read);
Stream destFile =
new FileStream(destFileName, FileMode.Create,
FileAccess.Write);
// Tạo một giải thuật Triple DES mới để giải mật hóa file.
using(SymmetricAlgorithm alg =
SymmetricAlgorithm.Create("3DES")){
// Cấu hình thuộc tính Key và IV của giải thuật.
alg.Key = key;
alg.IV = iv;
// Tạo một CryptoStream để giải mật hóa nội dung của dữ liệu
// đã-được-mật-hóa khi nó được ghi. Gọi phương thức
// CreateDecryptor của SymmetricAlgorithm để nhận thể hiện
// ICryptoTransform và truyền nó cho CryptoStream.
CryptoStream cryptoStream = new CryptoStream(destFile,
alg.CreateDecryptor(),
CryptoStreamMode.Write);
// Khai báo bộ đệm dùng để đọc dữ liệu từ file đã-được-
// mật-hóa và ghi ra file đích thông qua CryptoStream.