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

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

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

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

3 ответа

Решение

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

Вы можете просмотреть исходный код приложения Secrets for Android для некоторых примеров.

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

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

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

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

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

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

Другие вопросы по тегам