обрабатывать конфиденциальные данные и текст в приложении Android - PullRequest
2 голосов
/ 21 декабря 2011

Какой самый лучший и безопасный способ обработки конфиденциального текста в приложении для Android?

Базовая структура (text / int) и некоторые похожие варианты.

Приложениепоказывает только выбор (читаемый текст / читаемый int) за раз, поэтому расшифровка будет выполняться только для очень немногих пар за один раз.

Мне нужно убедиться, что извлекается полная (text / int)) информация практически невозможна - если возможно: -)

Существует ли какая-либо стандартная библиотека / схема для этого?

Большое спасибо

РЕДАКТИРОВАТЬ (после получения некоторыхочень интересные ответы на этот вопрос):

Кажется, что даже когда данные зашифрованы, можно легко извлечь декомпилированный код из приложения, объединить его с процедурой самописного извлечения итем самым получить всю расшифрованную информацию в файл.Поскольку ключ шифрования должен быть предоставлен пользователям приложения, потенциально каждый может получить данные таким образом.

Итак, в общем, нет действительно хорошего решения?

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Вы можете сохранить свою пару text / int в SharedPreference.

Поскольку это небезопасно, вы можете зашифровать данные перед их сохранением в SharedPreference так же, как это делает Google в приложении Лицензионный пакет.

Более подробную информацию можно найти в разделе Реализация обфускатора .

Источник кода AESObfuscator можно найти в SDK впапка market_licensing / library / src / com / android / vending / licensing.

1 голос
/ 22 декабря 2011

Я думаю, что в вашем приложении вы можете использовать симметричную криптографию и хранить свой ключ в хранилище ключей.Этот ключ должен быть защищен паролем.Каждый раз, когда вы запускаете приложение, оно запрашивает у пользователя пароль.Если пароль правильный, то ключ извлекается из хранилища ключей и используется для расшифровки ваших данных.В этом случае нет разницы, где вы храните свои данные (пары text / int), потому что все данные будут зашифрованы.Для Android SDK посмотрите на пакет java.security и класс java.security.KeyStore

Если вы хотите предоставить вашему приложению данные, которые вы не хотите извлекать, тогда возможна обфускация.если ты пишешь на Java.Если вы хотите, чтобы эта функциональность была написана на C / C ++, используйте Android NDK.

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