Função de Criptografia SHA() do MySQL. Como faço no Hibernate?

Olá pessoal,

Tenho o seguinte problema. Eu utilizava Java + MySQL sem framework, então eu utilizava comando SQL para acessar o BD. No caso do login eu utilizava o seguinte método:

    public boolean confirmaLoginByUserPass(String userLogin, String senhaLogin) {
        Login login = null;
        boolean teste = false;
        try {
            ResultSet rs =
                    this.statement.executeQuery( "SELECT * FROM usuario WHERE login = '"+userLogin+"'AND senha = SHA('"+senhaLogin+"')");
            if (rs.next()) {
                teste = true;
                login = new Login(  rs.getString(1),
                        rs.getString(2),
                        rs.getString(3));
            }
        } catch (SQLException sqle) {
            System.out.println(sqle.getMessage());
        }
        return teste;
    }

O problema é que agora estou alterando tudo para Hibernate. Como faço isso no Hibernate?

Grato.
Wallfox

Como isto é uma particularidade do banco de dados é bem possível que o Hibernate não faça.

Nestes casos é possível utilizar uma query nativa…

Outra coisa que você pode fazer e que é mais inteligente é criptografar a senha na aplicação, assim não precisará usar a query nativa.

Guilherme,

Como eu faço para criptografar a senha na aplicação?

Grato.
Wallfox

Divirta-se:

http://java.sun.com/j2se/1.5.0/docs/guide/security/CryptoSpec.html
http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/package-summary.html