Полагаю, вы храните пароли в открытом виде. Это не только небезопасно, но и не нужно в большинстве ситуаций. Мой совет - хранить пароли в двух столбцах, например ::100100
password_salt VARCHAR(16)
password_hash VARCHAR(40)
Перед сохранением нового пароля возьмите пароль, предоставленный пользователем ($clear_password
), создайте случайную строку ($salt
) и используйте обе для создания хэша (sha1sum($salt . $clear_password
). Сохраните и соль, и хеш, и удалите открытый пароль.
Чтобы проверить пароль, извлеките сохраненную соль для данного пользователя, сгенерируйте хеш и посмотрите, соответствует ли он хешу в БД.
Эта техника называется соленые пароли .