Да, это сложно на Android. Вы не хотите хранить пароль в текстовом виде в настройках, потому что любой пользователь с рутованным устройством будет в основном отображать свой пароль для всего мира. С другой стороны, вы не можете использовать зашифрованный пароль, потому что вам придется хранить свой ключ шифрования / дешифрования где-то на устройстве, снова подверженный атаке root.
Одно из решений, которое я использовал некоторое время назад, заключается в том, чтобы сервер генерировал «билет», который он передает обратно на устройство, что хорошо в течение определенного периода времени. Этот билет используется устройством для всех коммуникаций, используя SSL, конечно, чтобы люди не могли украсть ваш билет. Таким образом, пользователь аутентифицирует свой пароль на сервере один раз, сервер отправляет обратно билет с истекающим сроком действия, и пароль никогда не сохраняется нигде на устройстве.
Этот механизм используется несколькими трехсторонними механизмами аутентификации, такими как OpenID, Facebook и даже API Google. Недостатком является то, что время от времени, когда срок действия билета истекает, пользователь должен повторно войти в систему.
В конечном счете, это зависит от того, насколько безопасно вы хотите, чтобы ваше приложение было. Если это просто для того, чтобы отличить пользователей, и никакая сверхсекретная информация не хранится, например, банковские счета или группы крови, тогда, возможно, сохранение pwd в виде открытого текста на устройстве просто отлично :)
Удачи, какой бы метод вы ни выбрали, он лучше всего подходит для вашей конкретной ситуации!
Редактировать: я должен отметить, что этот метод переносит ответственность за безопасность на сервер - вы захотите использовать соленые хэши для сравнения паролей на сервере, идею, которую вы увидите в некоторых других комментариях к этому вопросу , Это предотвращает появление обычного пароля в любом месте, кроме представления EditText на устройстве, связи SSL с сервером и оперативной памяти сервера, пока он солит и хэширует пароль. Он никогда не хранится на диске, что хорошо (tm).