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

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

return plaintext;

}

}

Lệnh

AsymmetricEncryptionExample "I love you!"

sẽ sinh ra kết xuất tương tự như sau:

Original message = I love you!

Formatted Ciphertext = 1F-53-05-2B-9D-CC-20-6B-5D-D3-D4-0B-C9-5F-CA-FA-C1-61-6C-

3B-5B-9E-EA-B9-D0-AF-E5-2B-05-BC-D4-94-DD-71-D6-21-2A-B0-82-6B-16-C0-89-3E-24-B3-
B3-A3-15-FE-16-7A-B0-58-14-43-CD-69-1A-FD-08-39-2D-09-A6-41-86-96-78-B4-3D-D6-C7-

39-8A-90-84-D6-68-E6-5D-86-32-14-67-51-A7-B7-5A-EF-CF-F4-6D-E4-B0-18-6A-16-2A-AF-
54-B7-3C-B8-19-6E-A5-86-BF-3E-B2-6D-17-E3-1D-E8-AD-D1-A8-D9-54-93-8E-F1-E8-5D-AC-

4A

Decrypted message = I love you!

Nếu bạn chạy ví dụ này nhiều lần với cùng thông điệp và khóa, ciphertext sẽ
khác nhau. Đó là vì cơ chế padding
sinh ra dữ liệu ngẫu nhiên để tránh các dạng
tấn công bằng mật mã. Mặc dù hơi rắc rối nhưng đây chính là cách hành xử mà
ta mong đợi.

9.

9.

L u tr khóa b t đ i x ng m t cách an toàn

ư ữ

ấ ố ứ

L u tr khóa b t đ i x ng m t cách an toàn

ư ữ

ấ ố ứ

Bạn cần lưu trữ cặp khóa bất đối xứng vào một nơi an toàn để ứng dụng của bạn
có thể truy xuất được dễ dàng.

Dựa vào chức năng lưu trữ khóa do hai lớp giải thuật bất đối xứng cung cấp
(

RSACryptoServiceProvider

DSACryptoServiceProvider

—thuộc không gian tên

System.Security.Cryptography

).

Cả hai lớp giải thuật bất đối xứng—

RSACryptoServiceProvider

DSACryptoServiceProvider

—đều bọc lấy các chức năng do CSP (Cryptographic Service Provider—một thành phần của
Win32 CryptoAPI) hiện thực. Ngoài các dịch vụ như mật hóa, giải mật hóa, và chữ ký số, mỗi
CSP còn cung cấp một kho chứa khóa (key container).
Kho chứa khóa là vùng lưu trữ dành cho các khóa mà CSP quản lý; CSP sử dụng cơ chế bảo
mật của hệ điều hành và phép mật hóa mạnh để bảo vệ nội dung của kho chứa khóa. Kho chứa
khóa cho phép ứng dụng dễ dàng truy xuất khóa mà không ảnh hưởng đến tính bảo mật của
khóa. Khi gọi các hàm của một CSP, ứng dụng cần chỉ định tên của kho chứa khóa và CSP sẽ
truy xuất các khóa cần thiết. Vì khóa không truyền từ CSP đến ứng dụng nên ứng dụng không
thể làm hại tính bảo mật của khóa.
Lớp

RSACryptoServiceProvider

DSACryptoServiceProvider

cho phép bạn cấu hình hiện

thực CSP nằm dưới bằng một thể hiện của lớp

System.Security.Cryptography.

CspParameters

. Để cấu hình cho một đối tượng

RSACryptoServiceProvider

hay

DSACryptoServiceProvider

sử dụng một kho chứa khóa cụ thể, bạn phải hoàn tất các bước

dưới đây:

1. Tạo một đối tượng

CspParameters

.

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.