проверка пароля аутентификации пользователя в базе данных - PullRequest
0 голосов
/ 12 октября 2011

Я работаю над приложением, которое требует от пользователя аутентификации.Я делаю это, имея базу данных, которая имеет таблицу профилей и имеет внутри таблицы имя пользователя и пароль.Я собирался попросить пользователя ввести свое имя пользователя и пароль, а затем сравнить данные с данными в базе данных.И если они были одинаковыми, то они вошли в систему. Это правильный способ сделать это?

Если это правильный способ сделать это, как я могу сравнить данный пароль пользователя с паролем вбаза данных?Пароль в базе данных был зашифрован с использованием функции ПАРОЛЬ.

Спасибо!

Ответы [ 2 ]

1 голос
/ 12 октября 2011

У вас есть основы, да.Обычно к паролю добавляют salt , а затем его хэшируют, используя односторонний алгоритм хеширования, такой как SHA1 () , SHA256 () и т. Д. Затем сохраняют имя пользователя, сольи хешированный пароль + соль в вашей БД.При проверке учетных данных вы получаете соль на основе имени пользователя, затем используете его для хеширования предоставленного пароля, а затем сравните его с тем, который вы сохранили.Неудачный ответ пользователю не должен указывать, был ли пароль или имя пользователя неправильным.Просто что-то было неправильно.

Соль предотвращает атаки по словарю.Односторонний хэш не позволяет никому, включая вас или пользователя, когда-либо восстановить пароль.Вы можете только сбросить его.

Это ни в коем случае не исчерпывающее руководство.Еще несколько предложений, чтобы вы были ближе.

1 голос
/ 12 октября 2011

Для этого вы можете использовать функции AES_ENCRYPT (), AES_DECRYPT (). Здесь, как я предлагаю. В вашей программе вы храните постоянную глобальную переменную, в которой хранится ключ шифрования.

Таким образом, вы можете сравнить пароль следующим образом.

ВЫБРАТЬ User_ID ИЗ профиля, где profile.userID = '+ userID +' И profile.password = AES_ENCRYPT ('+ данный пароль +', '"+ USER_ENCRYPTION_KEY +"')

Надеюсь, это поможет вам.

Прасад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...