CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 565

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.