Этот вопрос является продолжением вопроса о
форме восстановления пароля на сайте.
Приведу его полностью
Сделали формочку с полем для ввода почты и кнопкой «Восстановить пароль».
При нажатии на нее на почту (если такая есть в базе) отправляется ссылка вида
site.ru/fastlogin/name@mail.ru/823497378934270324789543
По ссылке мы определяем совпадает ли почта и хеш пароля (823497378934270324789543) с данными учетки. Если да, то человек автоматически входит на сайт. То есть перешел по ссылке и уже залогинен.
Вроде бы все очень легко и удобно. Но чувствуется что тут есть какие-то подводные камни. Может быть вы увидите их?
Главным недочетом, предложенного мною ранее варианта, является то, что этот хеш делается, грубо говоря, так
md5($pass.$salt);
и, соответственно, хеш не меняется до тех пор, пока пользователь не сменит пароль.
Самое главное тут, (спасибо отозвавшимся и ++ конечно :), придать таким ссылкам срок годности, скажем, в один час.
Проблема легко решается если завести в базе табличку, в которой будут хранится такие хеши с датой и временем их создания. Но хотелось бы обойтись без записей в базу.
Собственно вопрос.
Можно ли в хеше предусмотреть возможность внедрения срока годности?
Если да, хотелось бы увидеть алгоритм, ну или хотя-бы понять в каком направлении двигаться.
Пока что в голову приходит только вариант с обратимым шифрованием Mcrypt, но пока что не удается добиться его правильной работы. Проблему описал в этом вопросе
habrahabr.ru/qa/25015/