2011-09-26 40 views
5

Tôi đang phát triển một ứng dụng cho Windows (C#), Iphone, Android và Iphone sẽ kết nối với SOAP WebService, lưu trữ thông tin trên Cơ sở dữ liệu.Mã hóa dữ liệu giữa C#, ANDROID và IPHONE

Tôi đang tìm cách mã hóa/giải mã thông tin giữa các nền tảng đó. Có thư viện nền tảng chéo nào không?

Trả lời

2

Như @Sascha nói, AES có sẵn trên khá nhiều mọi nền tảng. Những gì bạn phải làm là đảm bảo rằng mọi thứ khác đều giống nhau trên cả hai nền tảng:

  1. Chế độ tương tự; sử dụng chế độ CBC hoặc CTR.
  2. Cùng IV; đặt nó một cách rõ ràng, không sử dụng mặc định bởi vì nó thường sẽ khác nhau trên các hệ thống khác nhau.
  3. Cùng một khóa; hiển nhiên, nhưng chúng cần phải giống nhau ở cấp độ byte vì văn bản có thể được mã hóa khác nhau trên các hệ thống khác nhau. Nói rõ ràng mã hóa bạn đang sử dụng.
  4. Cùng một phần đệm; cho AES sử dụng PKCS7, một lần nữa không dựa vào mặc định có thể khác nhau trên các hệ thống khác nhau.

Bất cứ điều gì bạn chọn đều đặt rõ ràng và không dựa vào mặc định. Mặc định có thể khác nhau giữa các hệ thống và bất kỳ sự khác biệt nào cũng sẽ làm cho việc giải mã thất bại.

+1

bạn có thể cung cấp ví dụ demo đơn giản cho việc này bằng cả ba nền tảng không? – Pratik

2

Bạn đã xem MonoTouch và MonoDroid theo Xamarin chưa?

Sử dụng các thư viện này, bạn có thể chỉ cần sử dụng các dịch vụ XML gốc tự nhiên giữa cả ba và chia sẻ tất cả mã phụ trợ của bạn.

2

Tôi muốn giới thiệu Chuẩn mã hóa nâng cao (AES). Nó rất an toàn và tôi chắc chắn rằng mọi nền tảng đều có một cài đặt mặc định tốt cho thuật toán này.

Có một cái nhìn tại detailes: AES on wikipedia

2

Lần cuối cùng tôi phát triển ứng dụng iPhone và Android, tôi cần nhận và đăng dữ liệu lên .NET Soap WebService. Tôi sử dụng AES để mã hóa/giải mã dữ liệu

Bạn có thể tải xuống dự án mẫu tệp zip mà tôi đã theo dõi để thực hiện mã hóa/giải mã trong mục tiêu-c và .NET từ liên kết này.

http://dotmac.rationalmind.net/2009/02/aes-interoperability-between-net-and-iphone/

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