Problema na autenticação de usuário com senha criptografada na base

Oi pessoal,

Estou começando agora no java e estou com um problema quanto a autenticação de usuarios.
Já vi alguns tópicos aqui que mostram como fazer a query e tudo mais. Meu código está funcionando mas existe um detalhe:
Estou usando banco Mysql (posteriormente migrarei para Oracle) e o campo senha da tabela de usuario está sendo inserido usando a sintaxe: "insert into … password(‘123’)… (Por enquanto ainda estou setando a senha ‘na mão’) " e extamente por este motivo a query sempre retorna vazia.

Como posso verificar um campo criptografado atraves de HQL.

Segue meu código:

PARA POSTAR SEUS CÓDIGOS NO GUJ USE AS TGAS CODE QUE ESTÃO DISPONIVEIS ENQUANTO VC ESCREVE SEU TEXTO.


//DESSE MODO...

valeu!
Se nao deu para visualizar o codigo… aqui vai:


	public Usuario verificarLogin(String email, String senha) throws NegocioException { 	
		Long usuarioEncontrado = null;
		Query query = null;
		Usuario usuario = null;
		
		query = getHibernateTemplate().getSessionFactory()
		.getCurrentSession().getNamedQuery("verificarLogin");
		
		query.setString("email", email);
		query.setString("senha", senha);
		
		usuarioEncontrado = (Long) query.uniqueResult();		
					
		if (usuarioEncontrado != null) {			
			usuario = this.obter(usuarioEncontrado );						
		}
		
		return usuario;
               }



<query name="verificarLogin">
  <![CDATA[
    SELECT usuario.chave FROM Usuario usuario WHERE usuario.mail = :mail and usuario.senha = :senha	
  ]]>
</query>

Alguem poderia me ajudar a resolver este problema? Estou pesquisando mas sem restorno positivo.

Será que qnd temos um campo SENHA em um banco (seja MySql, Oracle ou SQLServer) e essas senhas estao usando a criptografia do proprio SGBD (seja nas sintaxes password(’’), md5() ou covert(…)) Hibernate não tem como comparar a senha do campo da tabela com a informada no formulario preenchida pelo usuario?

Ou será que por conta do hibernate nao conseguir fazer essa comparacao eu terei que guardar as senhas dos usuarios como um varchar comum aberto a todos que tenha acesso a base?

Tem alguma maneira, seja no mapeamento ou na query, de indicar ao hibernate que aquele determinado campo é “do tipo senha”?