Pessoal estou com um problema na hora de testar se um login é válido ou não, é o seguinte:
tenho um cadastro de funcionários que envia uma senha criptografada para o MySQL>>
private void jpSenhaFocusLost(java.awt.event.FocusEvent evt) {
jpSenha.setText(EncriptaSenha.encripta(jpSenha.getPassword().toString()));
}
funcionario.setFuncSenha(jpSenha.getPassword().toString());
EncriptaSenha>>
public static String encripta(String senha) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(senha.getBytes());
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(digest.digest());
} catch (NoSuchAlgorithmException ns) {
ns.printStackTrace();
return senha;
}
}
quando vou testar, encripto a mesma senha novamente para testar com a que está no banco, mas a encriptação sai diferente,
query = entityManager.createNamedQuery("Funcionario.verificaLogin");
query.setParameter("funcCod", Integer.parseInt(jfLogin.getText()));
query.setParameter("funcSenha", EncriptaSenha.encripta(jpSenha.getPassword().toString()));
List<FuncionarioBean> data = query.getResultList();
if (data.size() > 0) {
String args[] = new String[1];
args[0] = data.get(0).getFuncCod().toString();
JanelaInicio.main(args);
dispose();
} else {
JOptionPane.showMessageDialog(null, "Usuário/Senha incorretos");
dispose();
}
sempre dando a mensagem “Usuário/Senha incorretos”, alguém sabe qual o problema?
desde já agradeço!!