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

560
Chương 14: Mật mã

Console.WriteLine(BitConverter.ToString(hash));

}

}

}

}

Lệnh

KeyedHashStreamExample KeyedHashStreamExample.cs secretKey

sẽ sinh ra mã băm

như sau:

95-95-2A-8E-44-D4-3C-55-6F-DA-06-44-27-79-29-81-15-C7-2A-48

Ứng dụng KeyedHashMessageExample.cs (có trong đĩa CD đính kèm) trình bày cách tạo một
mã băm có khóa từ một chuỗi. Ứng dụng này yêu cần hai đối số dòng lệnh: một thông điệp và
một khóa, và sẽ tạo ra mã băm có khóa cho chuỗi thông điệp bằng khóa này. Ví dụ, lệnh

KeyedHashMessageExample "Two hundred dollars is my final offer" secretKey

sẽ sinh ra

mã băm như sau:

83-43-0D-9D-07-6F-AA-B7-BC-79-CD-6F-AD-7B-FA-EA-19-D1-24-44

6.

6.

B o v file b ng phép m t hóa đ i x ng

ả ệ

ố ứ

B o v file b ng phép m t hóa đ i x ng

ả ệ

ố ứ

Bạn cần mật hóa một file bằng giải thuật mật hóa đối xứng (symmetric
encryption
).

Trước hết, bạn phải thể hiện hóa một trong các lớp giải thuật đối xứng cụ thể
dẫn xuất từ lớp

System.Security.Cryptography.SymmetricAlgorithm

. Sau đó, gọi

phương thức

CreateEncryptor

hay

CreateDecryptor

của đối tượng

SymmetricAlgorithm

để thu lấy một đối tượng có hiện thực giao diện

System.Security.Cryptography.ICryptoTransform

. Sử dụng đối tượng

ICryptoTransform

này kết hợp với một đối tượng

System.Security.Cryptography.CryptoStream

để mật hóa hay giải mật hóa dữ liệu

đọc từ một file (được truy xuất bằng một đối tượng

System.IO.FileStream

).

Lớp trừu tượng

SymmetricAlgorithm

cung cấp một lớp cơ sở để tất cả các hiện thực giải thuật

đối xứng cụ thể dẫn xuất từ đó. Thư viện lớp .NET Framework có bốn hiện thực giải thuật đối
xứng cụ thể được liệt kê trong bảng 14.3, mỗi lớp là một thành viên của không gian tên

System.Security.Cryptography

. Các lớp có đuôi là

CryptoServiceProvider

bọc lấy các chức

năng do Win32 CryptoAPI cung cấp, trong khi các lớp có đuôi là

Managed

(hiện tại chỉ có

RijndaelManaged

) được hiện thực hoàn toàn bằng mã lệnh được-quản-lý. Bảng này cũng cho

thấy chiều dài khóa mà mỗi giải thuật hỗ trợ (chiều dài mặc định được in đậm). Nói chung,
khóa càng dài, càng khó giải mật hóa ciphertext nếu không có khóa, nhưng cũng có nhiều yếu
tố khác cần xem xét.

Bảng 14.3 Các hiện thực giải thuật đối xứng

Tên giải thuật

Tên lớp

Chiều dài khóa (bit)

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.