Intereting Posts
Является ли это правильным способом очистки стопы фрагмента при выходе из глубоко вложенного стека? Освежающая активность при получении уведомления gcm push OnSurfaceCreated (), называемый изменением ориентации каждый раз Матричные преобразования OpenGL ES Android Как обращаться к файлам в памяти телефона или SD-карты Открывать мягкую клавиатуру при нажатии клавиши ввода Android ListView Проведите пальцем вправо и влево, чтобы принять и отклонить Android: измените цвет линии ниже ActionBar Как я могу отладить код doInBackground для AsyncTask Проблема с видовым пространством на обычной ориентации mobile Скрыть системную панель в планшетах Лучший способ для осуществления интерактивной коммуникации в приложении Android TabHost Выбрать несколько изображений в галерее Android DrawerLayout или TabLayout имеет значение null после возобновления активности из фона? Android: загрузка изображения из Интернета с помощью Asynctask

Есть ли способ безопасно хранить данные пользователя на устройстве Android?

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

Очевидно, я не могу просто разместить это как файл на устройстве, так как каждый может root / найти данные. Существует ли встроенный метод Android для хранения защищенных данных, заблокированных паролем? Если нет, то что хорошего места для безопасного хранения этих данных с помощью Java?

Изменить: Чтобы уточнить, когда я говорю, что пользователь вводит пароль, я не имею в виду, что у меня есть способ защитить данные. Я просто пытаюсь передать метод, с помощью которого пользователь будет защищать данные на своем конце; Теперь я пытаюсь понять, как сохранить свой конец сделки. 🙂

Вы можете использовать включенные классы javax.crypto для шифрования любой конфиденциальной информации.

Для некоторых примеров вы можете просмотреть исходный код приложения « Секреты для Android» .

Секреты Android – это приложение для безопасного хранения и управления паролями и секретами на вашем телефоне Android. Он использует такие методы, как надежное шифрование и автоматическое выключение, чтобы гарантировать, что ваши секреты остаются в безопасности (при условии, что вы используете хороший мастер-пароль!). Контекстно-зависимые советы помогут вам в этом, облегчив использование.

Очевидно, я не могу просто разместить это как файл на устройстве, так как каждый может root / найти данные.

Правда, но если вы разрешаете пользователю определять пароль для файла резервной копии, то кому-то, кто украл файл, все равно придется взломать шифрование. Они могут узнать алгоритм, который вы используете, но не пароль.

Существует ли встроенный метод Android для хранения защищенных данных, заблокированных паролем?

Сам Android не предлагает зашифрованного хранилища файлов. Вы можете сами зашифровать файлы, что я и предполагал, что вы делали, когда писали, что «пользователь вводит пароль для защиты данных».

Посмотрите на SQLCipher для Android. Вы можете сохранить эту информацию в базе данных, а затем зашифровать ее с помощью 256-битного AES. http://sqlcipher.net/sqlcipher-for-android/ Основной проект является propriatery, но вы можете бесплатно получить бинарные файлы Android через GitHub, а также некоторые примеры использования.