Я думал отправить письмо с паролем md5 в качестве токена и проверить правильность адреса электронной почты и пароля, прежде чем показывать форму восстановления пароля
1) пользователь вводит почту
2), еслипочта существует, отправьте на нее электронное письмо с паролем в виде токена
3) когда пользователь нажмет на ссылку: проверьте правильность пароля почты и md5, если так:
4) показать генератор паролейform
-EDIT-
Так как можно быть безопаснее, не добавляя ни одного столбца в пользовательскую таблицу?