Нет смысла где-то хранить пароли юзера и темболее самому им их генерить.
Есть в системе политика на длину и сложность пасса, забыл юзер пароль? Ставим рандомный и галку "требовать смену", юзер заходит и меняет пароль в течении n минут, не зашел и не поменял, блочим учётку вообще.
Как доставить юзеру временный пароль это уже из разряда принятых в организации политик.