Estou fazendo um sistema desktop em java, e faço a criptografia da senha, usando uma função básica que criptografa o texto em um valor de 16 bytes, esta função retorna uma variável do tipo byte[]. Pois bem, estou pegando esta variável e setando no atributo senha da minha class TBUSUARIO, que esta atribuída como byte[] senha;
Ao fazer o insert desta informação (MYSQL), é passado um valor totalmente diferente do que devia ser, me parece ser o endereço de memória. Enfim, a linha de insert é esta, e obviamente não é possível fazer insert dela.
insert into tbusuario (usu_login, usu_master, usu_senha, usu_descricao) values (‘SERVIDOR’,1,x’E2BBD4024EF17FEBA389D74F46B77BB0’,‘SERVIDOR’)
A classe tbusuario esta assim:
public class Usuario {
String login;
boolean master;
byte[] senha;
String descricao;
public byte[] getSenha() {
return senha;
}
public void setSenha(byte[] senha) {
this.senha = senha;
}
E a classe que salvo a informação esta assim:
private void salvarRegistro() {
byte[] senhaAES = null;
usuario = new Usuario();
try {
senhaAES = lib.criptaAES(edtSenha.getText());
usuario.setLogin(edtLogin.getText());
usuario.setSenha(senhaAES);
usuario.setMaster(chMaster.isSelected());
usuario.setDescricao(edtDescricao.getText());
....
E a classe que faz a inserção do registro e onde esta retornando erro é esta:
public void insereUsuario(Usuario novoUsuario) throws SQLException, ClassNotFoundException {
Connection conn = null;
try {
conn = ConexaoConfig.getInstance().getConexao();
PreparedStatement pstmt = conn.prepareStatement(sqlInsere);
pstmt.setString(1, novoUsuario.getLogin());
pstmt.setBoolean(2, novoUsuario.getMaster());
pstmt.setBytes(3, novoUsuario.getSenha());
pstmt.setString(4, novoUsuario.getDescricao().toUpperCase());
System.out.println(pstmt);
pstmt.executeUpdate();
} catch (SQLException e) {
throw e;
} catch (ClassNotFoundException ex) {
throw ex;
}
}
Observação: Estava salvando corretamente e também estava retornando do banco corretamente, onde eu conseguia pegar o retorno do banco e descriptografar, porém por algum motivo, não faz mais, instalei o MYSQL novamente, mas esta tudo como era antes.
Segue a tabela no banco :
CREATE TABLE tbusuario (
usu_login VARCHAR(30) NOT NULL,
usu_master BOOLEAN NOT NULL,
usu_senha VARCHAR(500) NOT NULL,
usu_descricao VARCHAR(30) NOT NULL,
PRIMARY KEY (usu_login)
);
Já não sei mais o que testar para corrigir…
…