Если я хочу сохранить имя пользователя и пароль для использования в приложении Android, каков наилучший способ сделать это? Это через экран настроек (но что, если пользователь пропустит это?), Или всплывающее диалоговое окно и запросить учетные данные пользователя? Если это так, я должен поддерживать состояние приложения. Как бы я это сделал?
android
authentication
storage
credentials
легенда
источник
источник
Ответы:
Большинство приложений для Android и iPhone, которые я видел, используют начальный экран или диалоговое окно для запроса учетных данных. Я думаю, что пользователю неудобно часто вводить свое имя / пароль, поэтому хранение этой информации имеет смысл с точки зрения удобства использования.
Совет от ( Android Dev Guide ):
Использование AccountManger - лучший вариант для хранения учетных данных. SampleSyncAdapter представляет собой пример того , как использовать его.
Если по какой-либо причине вам это не подходит, вы можете использовать постоянные учетные данные, используя механизм настроек . Другие приложения не смогут получить доступ к вашим предпочтениям, поэтому информация о пользователях не так легко раскрыть.
источник
AccountManager
(согласно моему ответу и окольным путём @ Miguel), и кто-то завладеет вашим телефоном GSM, ему нужно будет продолжать использовать вашу SIM-карту для доступа к вашим учетным записям, так как это приведет к аннулированию сохраненных учетных данных. когда сменится симка.Вы должны использовать Android AccountManager . Это специально для этого сценария. Это немного громоздко, но одна из вещей, которые он делает, - делает недействительными локальные учетные данные при смене SIM-карты, поэтому, если кто-то проведет по телефону и вставит в него новую SIM-карту, ваши учетные данные не будут скомпрометированы.
Это также дает пользователю быстрый и простой способ доступа (и, возможно, удаления) к сохраненным учетным данным для любой учетной записи, которую они имеют на устройстве, все из одного места.
SampleSyncAdapter (как упоминалось @Miguel) - это пример, который использует сохраненные учетные данные учетной записи.
источник
Я думаю, что лучший способ защитить ваши учетные данные - это сначала подумать о сохранении пароля с шифрованием в файле account.db, который не может быть легко доступен на нерутированных устройствах, а в случае рутированного устройства хакеру необходим ключ для расшифровки Это.
Другой вариант - сделать всю аутентификацию, как в Gmail. после первой аутентификации на сервере Gmail. вы получили токен, который будет использоваться в случае вашего пароля. этот токен будет храниться в виде обычного текста. Этот токен может быть ложным, если вы смените пароль с сервера.
последний вариант, который я бы порекомендовал вам включить двухфакторную аутентификацию и создать пароль для конкретного устройства для вашего устройства. После потери устройства все, что вам нужно, это отключить это устройство.
источник
Посмотрите, что является наиболее подходящим способом для сохранения пользовательских настроек в приложении Android, если вы хотите хранить пароли в виде открытого текста в SharedPreferences.
источник
Вы также можете посмотреть пример SampleSyncAdapter из SDK. Это может помочь вам.
источник
Взгляните на этот пост от разработчиков Android, который может помочь повысить безопасность хранимых данных в вашем Android-приложении.
Использование криптографии для безопасного хранения учетных данных
источник
С новым (Android 6.0) аппаратным обеспечением и API-интерфейсом для идентификации по отпечаткам пальцев вы можете сделать это, как в этом примере приложения github.
источник
Они ранжируются по степени сложности, чтобы сломать вашу скрытую информацию .
Хранить в открытом виде
Хранить в зашифрованном виде с помощью симметричного ключа
Использование Android Keystore
Хранить в зашифрованном виде с использованием асимметричных ключей
источник: где лучше всего хранить пароль в вашем приложении для Android
источник: просто используйте Android Keystore для хранения паролей и другой конфиденциальной информации
источник
Информация на http://nelenkov.blogspot.com/2012/05/storing-application-secrets-in-androids.html - это довольно прагматичный, но основанный на использовании «and-hidden-android-apis» подход. Это то, что нужно учитывать, когда вы действительно не можете обойтись хранением учетных данных / паролей локально на устройстве.
Я также разработал суть этой идеи на https://gist.github.com/kbsriram/5503519, которая может оказаться полезной.
источник