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

563

Chương 14: Mật mã

public class SymmetricEncryptionExample {

public static void Main(string[] args) {

// Tạo một giải thuật Triple DES mới để thu lấy khóa dùng cho

// ví dụ này. Khóa này sẽ được dùng chung trong các phương thức

// EncryptFile và DecryptFile. Bình thường, khóa được

// thỏa thuận giữa người gửi và người nhận, hoặc được gửi

// (bởi người gửi) cùng với file đã-được-mật-hóa.

byte[] key;

byte[] iv;

using(SymmetricAlgorithm alg =

SymmetricAlgorithm.Create("3DES")){

key = alg.Key;

iv = alg.IV;

}

// Mật hóa file. Tiền tố "encrypted" sẽ được thêm vào tên file

// nguồn và được sử dụng làm tên của file đã-được-mật-hóa.

EncryptFile(args[0], "encrypted"+args[0], (byte[])key.Clone(),

(byte[])iv.Clone());

// Giải mật hóa file đã-được-mật-hóa. Tiền tố "decrypted" sẽ được

// thêm vào tên file gốc và được sử dụng làm tên của file

// đã-được-giải-mật-hóa.

DecryptFile("encrypted"+args[0], "decrypted"+args[0], key, iv);

}

// Phương thức dùng để mật hóa một file (bằng giải thuật Triple DES)

// với key và iv cho trước.

private static void EncryptFile(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);

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.