Olá a todos,
Estou com um problema ao comparar uma senha criptografada com uma senha salva num banco de dados.
Debugando o código a senha confere exatamente com a que está salva no banco, porém ao executar o select ele não retorna nada, e se eu usar as senhas sem codificar funciona normalmente.
Estou usando o mesmo método para codificar/descodificar a senha em outra parte do sistema, porém sem usar o banco de dados e funciona perfeitamente, então deduzi que o problema está entre o java e o bd.
A codificação é simples, eu pego o valor asc de cada letra e adiciono um valor para gerar a senha codificada.
Estou usando JPA+toplink+Firebird 1.5
Alguém tem alguma idéia?
Joao, se entendi bem, este problema não faz muito sentido.
Vamos la:
Você tem uma senha encriptografada, digamos BANANA, onde encontra-se persistida na base de dados.
Dai o usuário posta uma senha abacaxi, onde passando pelo seu algoritimo ele o transforme em BANANA para ser feito a consistência da senha.
Aonde poderia estar o erro? Tem certeza que esse algoritmo de encriptografar/desencriptografar encontra-se correta?
Tenta verificar na log do seu servidor, qual é a query que ela está montando e quais valores estão sendo adicionados no filtro.
você compreendeu muito bem então, pois pra mim também não faz o mínimo sentido…
já realizei vários testes com o meu algorítimo para codificar/descodificar e não há problemas, e já fiz várias interações com o banco pra me certificar e nenhum problema também…
a resposta mais coerente que consegui até agora foi que eu poderia estar tendo problemas com o charset…estou pesquisando a respeito, mas qualquer sugestão será bem-vinda 
Estou com o mesmo problema, mas utilizando Delphi 2010 com FireBird 2.5… Se vc conseguiu a soloção, posta ae pra gente!
Nunca faça isso. Além de ser fácil de quebrar, você sempre terá problemas com codificação (encoding) em bancos de dados (todos eles têm, de uma forma ou de outra, esse problema. Isso é inevitável). Se puder trocar o método de criptografia de sua senha, e nunca guardar as coisas como string simples, mas em base-64 ou hexadecimal, você deixará de ter problemas no futuro.