To tentando criptografar as senhas e gravar no banco, to usando o MD5, mas ta dando erro de incompatibilidade de caracteres. Coloquei o banco como LATIN1. Alguem sabe como soluciono isso? Tipo uma conversao e tals, e ai como faco?
public class Criptografia {
public static String criptografar(String senha) {
try {
byte[] senhaCript;
MessageDigest md = MessageDigest.getInstance("MD5");
//md.reset();
senhaCript = md.digest(senha.getBytes());
char[] senhaConvert = new char[senhaCript.length];
for (int i=0; i<senhaCript.length; i++)
senhaConvert[i] = (char)senhaCript[i];
String senhaConvert2 = String.valueOf(senhaConvert);
return senhaConvert2;
} catch (NoSuchAlgorithmException ex) {
ex.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String teste = Criptografia.criptografar("heverton");
System.out.println("Tamanho:" + teste.length() + "\n" + teste);
Comunicacao.iniciaComunicacao();
int result = Comunicacao.inserirBanco(teste);
System.out.println("Resultado: " + result);
}
}
No metodo main ele tenta gravar no banco atraves do metodo “Comunicacao.inserirBanco(teste);” mas dar o seguinte erro:
Erro: SQL Exception
org.postgresql.util.PSQLException: ERROR: character 0xefbeb8 of encoding "UTF8"
has no equivalent in "LATIN1"
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryEx
ecutorImpl.java:1525)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutor
Impl.java:1309)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.ja
va:188)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Stat
ement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(Abstract
Jdbc2Statement.java:340)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdb
c2Statement.java:286)
at catalogo_codata_servidor.Persistencia.inserirBanco(Persistencia.java:
148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
60)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:701)
at java.lang.Thread.run(Thread.java:595)
E ai como contorno isso? Vlws…
)