Login com jsf, hibernate e recuperação de senha

Estou criando uma aplicação com login. Tendo feito o login corretamente, então chama uma página web. Caso esqueçam do login, o usuário informa o CPF ou nome de usuário e uma senha gerada pelo sistema é enviada para o email do cabra. Eu só gostaria de saber como gerar essa senha e vinculá-la ao cusuário. Uso PostgreSql,JSF, Hibernate/JPA e Java 6 e Helios.