Estou precisando de uma força. Estou com problemas em comparar um string criptografada com uma string do banco de dados. Vou explicar melhor.
Tenho uma tela de login, onde o usuário vai informar o login e senha. depois pesquiso no banco de dados se esse usuário existe e se a senha é valida. ate ai tudo bem. O problema e que o campo senha do banco de dados (varchar) esta criptografada quando eu comparo com a senha informada criptografada sempre informa que a senha e diferente.
programa: autenticacao
String vSenhaCrypt = crypt.encripta(request.getParameter(“senha”));
.
.
(Dou um select para buscar a senha)
(Pego o resultado)
vSenhaUsuario = result.getString(“senha_usuario”);
.
.
out.println(vSenhaUsuario.equals(vSenhaCrypt)) ; // Resultado sempre false
==================
programa: crypt.java
import java.security.*;
public class Crypto {
public String encripta(String passwd) {
byte[] cripty = passwd.getBytes();
byte[] resultado;
try {
MessageDigest md5 = MessageDigest.getInstance(“MD5”);
resultado = md5.digest(cripty);
}catch(NoSuchAlgorithmException e) {
System.err.println(e.toString());
resultado = “”.getBytes();
}
return new String(resultado);
}
}
Obs.: O estranho é que quando eu coloco os 2 para imprimir na tela eles são iguais.
Desde já agradeço.
Leonardo