Intereting Posts
Что ТОЧНО делает ресурсы $ NotFoundException? HTML5 Audio: Chrome на Android не автоматически воспроизводит песню против Chrome на ПК Некоторая путаница в методе instantiateItem (контейнер ViewGroup, int position) PagerAdapter Ожидание, пока карта google имеет размер в MapFragment Тема дня / ночи для приложения для Android Как создать ссылку для встречи Waze с веб-резервной? Итерировать данные Json из веб-службы в правильном порядке Специальное уведомление Android, не отображающее изменения кода Как начать разработку приложений для Android? Удаленный фрагмент Android и вид из BackStack Всплывающее окно (с использованием PopupWindow или Dialog) заполняет ширину экрана без видимых причин Proguarding Android Apps – насколько это важно (особенно по отношению к In-App Payments) Ошибка: не удается изменить зависимости конфигурации «: приложение: _debugAnnotationProcessor» после того, как оно было разрешено Android – создание переводов и objectAnimator в одном XML-файле Android shake обнаружение на эмуляторе

Android, где нужно сохранять личные данные?

У меня есть дилемма: мне нужно сохранить некоторые данные о безопасности на моем устройстве Android, эти данные являются информацией для входа в личный кабинет, так что, пожалуйста, дайте мне совет, где лучше сохранить эту информацию в простой файл txt (но как насчет безопасности ?) Или, может быть, есть аналог базы данных MySQL в платформе Android (и как я могу получить к ней доступ)?

Лучший способ хранения персональных данных в приложении Android – использовать общие настройки с режимом private, чтобы никто не мог получить доступ к этим данным, отличным от вашего приложения. Для получения дополнительной информации см. Рекомендации разработчиков Android об общих настройках здесь.

Вы можете сохранить простой txt-файл в свой каталог приложений. В общем, Android назначает каждому приложению уникальный uid. Каждое приложение имеет свой собственный каталог приложений с режимом 660. Таким образом, другое приложение не может получить доступ к своему контенту. Чтобы написать собственный каталог приложений, вы можете использовать следующий код:

String filename = "myfile"; String string = "Your security content"; FileOutputStream outputStream; try { outputStream = openFileOutput(filename, Context.MODE_PRIVATE); string = encrypt(string); outputStream.write(string.getBytes()); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } 

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

Для подхода к базе данных он имеет ту же проблему, вы можете определить свой собственный поставщик контента, не экспортируя его, но он по-прежнему уязвим для корневого устройства. Итак, что бы вы ни выбрали, написание txt-файла или хранение его на БД, сначала необходимо зашифровать его.

AFAIK вы не можете запускать MySQL на устройстве Android, но вы можете использовать SQLite ( учебник ). Вы даже можете попробовать использовать SQLCipher для хранения в зашифрованной базе данных. Хотя мне говорят, что не слишком сложно извлечь ключ доступа из вашего APK.

Когда вы храните свой пароль, убедитесь, что вы его зашифруете (даже если вы шифруете базу данных). Хранение паролей в виде обычного текста редко является хорошей идеей;)

Независимо от того, что вы делаете, НЕ храните его в текстовом файле!

Вы можете сохранить данные в SQLdb на Android, но сохранить все данные формы с помощью шифрования и просто сохранить строки.

Вы можете увидеть в ответе ниже пример того, как кто-то делает эту ту же самую технику и использует phoneId для шифрования (хотя я не уверен, насколько это безопасно).

Безопасно ли хранить имя пользователя + пароли в локальном SQLite db в Android?