2011-06-25 2 views
0

Я разрабатываю приложение для Android, которое требует хранения нескольких паролей по умолчанию.Хранить разные пароли в android

На основании введенного пароля пользователю будут показаны различные формы для заполнения.

Что является лучшим решением для хранения паролей по умолчанию, если число паролей по умолчанию более 10-20?

+0

Что вы подразумеваете под "лучшим"? – Mat

+0

Вы хотите знать, какое шифрование использовать? –

ответ

2

Я вижу две возможности:

  • Hash все пароли (! Вместе с солью) и хранить хэши в нормальной SQLite базы данных. Каждый раз, когда пользователь вводит пароль, вы генерируете хеш (с солью) и смотрите в базу данных, если есть математический хэш пароля. Если нет, пароль не был прав. Если да, вы можете посмотреть, какой из паролей соответствует, и перейти к правильной деятельности формы. Обратите внимание, что только один хеш должен выполняться, когда пользователь вводит пароль, поэтому вы можете использовать алгоритмы медленного хеширования.
  • Храните пароли в (AES-) зашифрованной базе данных или в зашифрованном виде в обычной незашифрованной базе данных. Затем вы можете всегда вычислять форму хранимых паролей в виде простого текста для более простого сравнения. Этот подход имеет недостаток в том, что вам нужно будет хранить секрет (ключ или кодовую фразу) в своем приложении (или получать его с вашего сервера каждый раз), который легко получить путем декомпиляции - если это чувствительные пароли или вы защищаете конфиденциальные данные , это было бы нехорошо.

Я предпочел бы первую возможность. Кроме того, я бы не использовал обычный MD5 как алгоритм хэширования, но, по крайней мере, SHA-512 или, еще лучше, bcrypt. Вот хороший поток, объясняющий, почему и как это сделать на Android: Stackoverflow-Thread. В принципе, вы должны считать, что кто-то будет извлекать базу данных sqlite, и тогда очень легко найти слабые пароли (с помощью радужных таблиц), если бы были применены быстрые алгоритмы хэширования (например, MD5). Соли паролей действительно помогают, но только против google attacks. Хэши Bcrypt (+ соль!) Намного медленнее генерируют (что хорошо), делая даже слабые пароли, которые трудно взломать.

0

В андроиде есть много вариантов хранения. См. this

Если данные ограничены, вы можете перейти к настройкам.

Смежные вопросы