#криптография #android
[Совет][Теория] Доброй ночи, хэшкодовцы =) Мне стало интересно как лучше сохранять данные, которые вводит пользователь. В моем случае это пароль & логин. Что я под этим имею: Записывать данные в базу SQLite / на память телефона в файл и тому подобное. Примером для понимания моего вопроса можно взять любое социальное приложение. Одноклассники, Вконтакте, Mail.Ru Agent, WeChat и другие.
Ответы
Ответ 1
Теория В теории нельзя хранить пароли. Хранятся только пары логин и хэш пароля, лучше всего хранить хэш и отдельно от хэша соль к паролю, так чтобы: хэш строка=хэш(пароль+соль) //хэш функция например MD5 или SHA1 Проверка пароля осуществляется в этом случае так: Юзер вводит логин и пароль По логину находим хэш строку (из БД) По логину находим соль (в идеале в другом файле/бд) Вычисляем хэш как хэш(введенный пароль+соль) Сравниваем полученное значение с хранящимс в БД хэшем В случае успеха пускаем, в случае неуспеха отражаем Совет Для логин/хэш создаем таблицу SQLite с индексом по логину Для вычисления хэша чаще всего используется MD5 или SHA1, правда некоторые православные криптографы считают их слабыми и рекомендуют другие. Обзор криптографических хэш функций здесь Соль генерируем случайно и храним в преференсахОтвет 2
Для этого давным давно создан AccountManager и в приложениях которые вы перечислили в целом используется именно он. Как пример, могу порекомендовать это Главное не забыть, что шифровать данные все равно нужно! :)
Комментариев нет:
Отправить комментарий