2011-02-04 46 views
10

Tôi đang xem gửi dữ liệu được mã hóa giữa máy khách Silverlight và máy chủ mã nguồn gốc (C++) sử dụng WCF. Tôi đã xem xét việc sử dụng lớp AesManaged để mã hóa dữ liệu mà máy khách gửi trở lại máy chủ, nhưng đã tự hỏi về giải mã. Có một giả định rằng nếu lớp AesManaged được thực hiện dựa trên đặc tả AES, nó phải tương thích chéo với bất kỳ thư viện C++ AES nào, nhưng đã có kinh nghiệm với các thông số kỹ thuật của Microsoft (và các nhà cung cấp khác) trước đây. nếu có thể.Dữ liệu được mã hóa trong Silverlight có thể giải mã được bằng C++ không?

Tôi dự định xây dựng một nguyên mẫu nhưng tôi đã hy vọng có câu trả lời từ người đã có kinh nghiệm trong lĩnh vực này. Sử dụng C++/CLI hoặc C# để truy cập vào lớp AesManaged không phải là một tùy chọn khi tôi đang xử lý mã kế thừa mà tôi đang thêm chức năng vào.

Trả lời

1

Tất cả những gì tôi có thể nói với bạn là tốt nhất nên hỏi; Tôi không thể nói như thế này interop cụ thể, nhưng tôi đã cố gắng để giao tiếp với một phần của phần mềm di sản mà sử dụng một thực hiện bản địa cũ hơn được gọi là AesLib, và tôi đã cố gắng sử dụng AesCryptoServiceProvider. Họ sẽ không nói chuyện với nhau, rõ ràng là vì AesLib hoặc sử dụng một chế độ không có IV, hoặc có một IV tĩnh hoặc xác định mà tôi không thể phát hiện ra.

Nếu bạn có thể nhận và tham khảo việc thực hiện AES rằng máy chủ có nguồn gốc được sử dụng, và thực hiện một wrapper ICryptoServiceProvider tương thích xung quanh nó, mà có lẽ là sự bảo đảm tốt nhất mà thông điệp của bạn đến nguyên vẹn (mặc dù điều này có thể gây ra những vấn đề riêng của nó). Nếu không, tôi sẽ đảm bảo rằng tôi có tất cả các thông tin có thể khám phá về việc triển khai này để tôi có thể cấu hình AesManaged theo cùng một cách. Bạn sẽ cần, ít nhất, khóa, IV, kích thước khối và chế độ.

0

Tôi đã sử dụng thành công C# AesManaged cùng với việc triển khai AES của PHP từ lâu (trong Silverlight 2 Beta), vì vậy nó chắc chắn là có thể.

Tuy nhiên, bạn có thể muốn nghiên cứu những thứ như IV, paddings, kích thước khối và chế độ cẩn thận để đảm bảo cài đặt cho trận đấu AES.

Các vấn đề liên quan