Android шифровать данные JSON через Интернет - PullRequest
3 голосов
/ 04 мая 2011

Мое приложение будет часто подключаться к веб-службе для получения данных в формате json.

Есть ли способ, которым эти данные могут быть зашифрованы на стороне сервера и расшифрованы на стороне приложения, чтобы передаваемые данные были надежными и безопасными?

Кроме того, если приложение поставляется со своей собственной базой данных (файл sqlite db), может ли кто-либо, использующий это приложение, просмотреть эту базу данных (таблицы, поля и содержимое)?

С уважением, Sapan

Ответы [ 3 ]

4 голосов
/ 05 мая 2011

Самым простым способом передачи зашифрованных данных является использование SSL (т.е. https) для связи между приложением и веб-службой.

Если вам нужно настроить собственный самозаверяющий сертификат для сервера (а не покупать его), у вас могут возникнуть проблемы с тем, чтобы андроид общался с ним, но это выполнимо. См. этот ТАК вопрос для подсказок.

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

Однако вы обязательно должны использовать SSL-шифрование данных при передаче их по сети.

1 голос
/ 21 ноября 2011

Вы можете использовать шифрование для шифрования / дешифрования JSON как на Android, так и на сервере. В нем очень просто и безопасно.Использование Base64 не является эффективным способом, потому что любой может расшифровать.В этом вы можете использовать секретный ключ для шифрования и дешифрования строки.Если для расшифровки используется неправильный ключ, вывод будет неправильным.

http://www.androidsnippets.com/encryptdecrypt-strings

0 голосов
/ 04 мая 2011

Я использую кодирование и декодирование Base64 для шифрования данных по сети.

В зависимости от типа используемого веб-сервиса он будет иметь или не будет иметь кодировку и декодирование Base64. Вы всегда можете найти в Google код, созданный другими.

В зависимости от выбранной версии Android.

Начиная с уровня API 8 и выше: http://developer.android.com/reference/android/util/Base64.html

Для нижнего: http://www.frankdu.com/notes/2011/01/27/base64-encoding-with-android-2-1-or-earlier/

Вы также можете написать свои собственные системы кодирования и декодирования. ;)

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