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

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

// và trích thông tin PUBLIC KEY vào biến recipientsPublicKey.

using (RSACryptoServiceProvider rsaAlg =

new RSACryptoServiceProvider(cspParams)) {

// Cấu hình cho giải thuật lưu khóa vào kho chứa khóa.

rsaAlg.PersistKeyInCsp = true;

// Trích PUBLIC KEY.

recipientsPublicKey = rsaAlg.ExportParameters(false);

}

// Tạo giải thuật đối xứng Triple-DES và sử dụng

// khóa được sinh tự động làm khóa phiên.

using (SymmetricAlgorithm symAlg =

SymmetricAlgorithm.Create("3DES")) {

// Hiển thị khóa phiên gốc.

Console.WriteLine("Session Key at Source = {0}\n\r",

BitConverter.ToString(symAlg.Key));

// Chuẩn bị khóa phiên đối xứng dùng cho trao đổi

// (sử dụng phương thức FormatKeyExchange, phương thức

// này cần khóa dùng để mật hóa và PUBLIC KEY

// của người nhận).

byte[] exchangeData =

FormatKeyExchange(symAlg.Key, recipientsPublicKey);

// Hiển thị khóa phiên đã-được-mật-hóa (do phương thức

// FormatKeyExchange trả về).

Console.WriteLine("Exchange Data = {0}\n\r",

BitConverter.ToString(exchangeData));

// ****** GỬI KHÓA ******

// Bây giờ, khóa phiên có thể được gửi đi bằng các

// kênh giao tiếp bình thường.

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.