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

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

byte[] plaintext = Encoding.Unicode.GetBytes(args[0]);

// Mật hóa thông điệp bằng phương thức EncryptMessage.

// Phương thức này cần PUBLIC KEY của người nhận.

byte[] ciphertext = EncryptMessage(plaintext,

recipientsPublicKey);

// Hiển thị ciphertext do phương thức EncryptMessage trả về.

// Sử dụng phương thức BitConverter.ToString method cho đơn giản

// mặc dù nó chèn dấu gạch nối (-) vào giữa các giá trị byte

// (không đúng với biểu diễn dữ liệu trong bộ nhớ).

Console.WriteLine("Formatted Ciphertext = {0}",

BitConverter.ToString(ciphertext));

// Giải mật hóa thông điệp (đã-được-mật-hóa) bằng phương thức

// DecryptMessage. Phương thức này cần truy xuất PRIVATE KEY

// của người nhận (chỉ có người nhận mới có thể truy xuất được).

// Chúng ta sẽ truyền cho nó một đối tượng CspParameters

// (cho biết PRIVATE KEY được lưu trữ trong kho chứa khóa nào).

// Giải pháp này an toàn hơn là truyền PRIVATE KEY thô

// giữa các phương thức.

byte[] decData = DecryptMessage(ciphertext, cspParams);

// Chuyển thông điệp đã-được-giải-mật-hóa từ mảng byte

// thành chuỗi và hiển thị nó ra cửa sổ Console.

Console.WriteLine("Decrypted message = {0}",

Encoding.Unicode.GetString(decData));

// Nhấn Enter để kết thúc.

Console.ReadLine();

}

// Phương thức dùng để mật hóa (theo RSA) một thông điệp bằng

// PUBLIC KEY (nằm trong một cấu trúc RSAParameters).

private static byte[] EncryptMessage(byte[] plaintext,

RSAParameters rsaParams) {

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.