Хранение паролей

20.11.2010
Когда я только начал изучать PHP и MySQL передо мной встал вопрос - "Как же хранить пароль от учётных записей в БД?". Во многих книгах по PHP советуют использовать функцию crypt(), которая представляет собой "необратимое шифрование" т.е. хеширование.
Работать с ней довольно легко, про создание учётной записи шифруем пароль с помощью этой функции, а при аутентификации мы так же шифруем пароль и проверяем получившееся значение с тем, что хранится в базе. Если значения равны то пропускаем пользователя.
Но куда удобнее использовать встроенную в SQL функцию MD5(), работаем с ней так же как и с crypt(), вот пример добавления учётной записи:
$query = "INSERT INTO `userlist` (login, password) VALUES (" . $login . ", MD5(" . $password . "))";