Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Сохранение данных Android

#криптография #android


[Совет][Теория] 
Доброй ночи, хэшкодовцы =)
Мне стало интересно как лучше сохранять данные, которые вводит пользователь. В моем
случае это пароль & логин.
Что я под этим имею:
Записывать данные в базу SQLite / на память телефона в файл и тому подобное.
Примером для понимания моего вопроса можно взять любое социальное приложение. Одноклассники,
Вконтакте, Mail.Ru Agent, WeChat и другие.    


Ответы

Ответ 1



Теория В теории нельзя хранить пароли. Хранятся только пары логин и хэш пароля, лучше всего хранить хэш и отдельно от хэша соль к паролю, так чтобы: хэш строка=хэш(пароль+соль) //хэш функция например MD5 или SHA1 Проверка пароля осуществляется в этом случае так: Юзер вводит логин и пароль По логину находим хэш строку (из БД) По логину находим соль (в идеале в другом файле/бд) Вычисляем хэш как хэш(введенный пароль+соль) Сравниваем полученное значение с хранящимс в БД хэшем В случае успеха пускаем, в случае неуспеха отражаем Совет Для логин/хэш создаем таблицу SQLite с индексом по логину Для вычисления хэша чаще всего используется MD5 или SHA1, правда некоторые православные криптографы считают их слабыми и рекомендуют другие. Обзор криптографических хэш функций здесь Соль генерируем случайно и храним в преференсах

Ответ 2



Для этого давным давно создан AccountManager и в приложениях которые вы перечислили в целом используется именно он. Как пример, могу порекомендовать это Главное не забыть, что шифровать данные все равно нужно! :)

Комментариев нет:

Отправить комментарий