Từ đọc sách của tôi Tôi không chắc liệu AES có phải là một thuật toán chuẩn hóa duy nhất có thể hoạt động với các khóa độ dài khác nhau hoặc một họ thuật toán tương tự không? Những gì tôi có nghĩa là nếu tôi tìm thấy bất kỳ 2 triển khai AES lấy một khóa 128-bit, tôi có nên tự tin họ sẽ làm việc giống nhau (chặn lỗi)?Mã hóa AES và C#
Cụ thể trong .Net/C#, tôi đã nhầm lẫn lý do tại sao có hai triển khai lớp cơ sở trừu tượng System.Security.Cryptography.Aes
: System.Security.Cryptography.AesCryptoServiceProvider
& System.Security.Cryptography.AesManaged
.
Sau đó, dường như có sự khác biệt/chồng chéo giữa AES và Rijndael, NET có Rijndael
và RijndaelManaged
lớp học, cũng như RijndaelManagedTransform
Có gì khác biệt giữa tất cả các? Tôi nhận thấy các lớp AES dường như chỉ tồn tại từ .NET 3.5 trong khi Rijndael đã tồn tại từ 1.0
Xin lỗi nếu đây là câu hỏi ngớ ngẩn, tôi mới sử dụng mật mã khác với các chức năng băm an toàn.
Như đã đề cập ở trên về chứng nhận FIPS, AesCryptoServiceProvider sẽ làm việc trong các tình huống mà ứng dụng .NET đang chạy trên PC được cấu hình với Chính sách bảo mật cục bộ của "Sử dụng thuật toán tuân thủ FIPS". AesManaged sẽ không. Ví dụ: một ứng dụng chạy trên PC Windows 10 được cấu hình cho Chính phủ Hoa Kỳ sẽ có cài đặt này và sẽ loại trừ trường hợp không sử dụng AesManged (Thông báo Lỗi: Triển khai này không phải là một phần của thuật toán mật mã được xác thực của Windows Platform FIPS) . –