Шифровать данные между C #, Android и IPhone - PullRequest
6 голосов
/ 26 сентября 2011

Я разрабатываю приложение для Windows (C #), Iphone, Android и Iphone, которое будет подключаться к SOAP WebService, который хранит информацию в базе данных.

Я ищу способ шифрования / дешифрования информации между этими платформами. Есть ли кроссплатформенная библиотека?

Ответы [ 4 ]

3 голосов
/ 26 сентября 2011

Как говорит @Sascha, AES доступна практически на любой платформе.Вам нужно убедиться, что все остальное одинаково на обеих платформах:

  1. Один и тот же режим;используйте режим CBC или CTR.
  2. Тот же IV;установите его явно, не используйте значение по умолчанию, потому что оно часто будет отличаться в разных системах.
  3. Тот же ключ;очевидно, но они должны быть одинаковыми на уровне байтов, потому что текст может кодироваться по-разному в разных системах.Явно укажите кодировку, которую вы используете.
  4. Та же прокладка;для AES используйте PKCS7, опять же не полагайтесь на значение по умолчанию, которое может отличаться в разных системах.

Что бы вы ни выбрали, делайте это явно и не полагайтесь на значения по умолчанию.Значения по умолчанию могут отличаться в разных системах, и любое различие приведет к сбою расшифровки.

2 голосов
/ 27 сентября 2011

В последний раз, когда я разрабатываю приложение для iPhone и Android, мне нужно получить и опубликовать данные в .NET Soap WebService. Я использую AES для шифрования / дешифрования данных

Вы можете скачать образец проекта zip-файла, который я использовал для шифрования / дешифрования в target-c и .NET по этой ссылке.

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

2 голосов
/ 26 сентября 2011

Я хотел бы рекомендовать Расширенный стандарт шифрования (AES).Это очень безопасно, и я уверен, что каждая платформа имеет хорошую реализацию этого алгоритма по умолчанию.

Посмотрите на подробности: AES в Википедии

2 голосов
/ 26 сентября 2011

Вы смотрели на MonoTouch и MonoDroid Xamarin ?

Используя эти библиотеки, вы, вероятно, могли бы просто использовать нативные .Net XML Services между всеми тремя и обмениваться всем своим внутренним кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...