Pessoal,
Não estou querendo os bytes de uma String através do “string”.getBytes()…
Utilizo a classe BigInteger para fazer uma conversão de bytes[] para uma representação dela em String na base16 (hexadecimal), porém estou tendo problemas para retornar essa String que foi gerada de volta para o byte[]… olha como estou fazendo:
[code]
byte[] byteSenha = “é1234”.getBytes();
System.out.println(“tamanho do byte da senha : “+ byteSenha.length);
System.out.println(”\nBytes da senha”);
for(int i=0; i<byteSenha.length; i++)
System.out.println("BYTE “+i+” : " + byteSenha[i]);
BigInteger hash = new BigInteger( 1, byteSenha);
String retornaSenha = hash.toString(16);
System.out.println("Convertendo em Hex : " + retornaSenha);[/code]
Saída:
tamanho do byte da senha : 5
Bytes da senha
BYTE 0 : -23
BYTE 1 : 49
BYTE 2 : 50
BYTE 3 : 51
BYTE 4 : 52
Convertendo em Hex : e931323334
Para retornar a senha de hex para a original, faço da seguinte forma:
[code]
byte[] byteHex = new BigInteger(senhaHexadecimal, 16).toByteArray();
System.out.println("TAMANHO BYTE HEX : " + byteHex.length);
System.out.println("Conversão para Decimal : " + new BigInteger(1, byteHex).toString(10));
byte[] byteDec = new BigInteger(new BigInteger(1, byteHex).toString(10), 10).toByteArray();
System.out.println("TAMANHO BYTE DEC : " + byteDec.length);
System.out.println("\nBytes da senha revertida");
for(int j=0; j><byteDec.length; j++)
System.out.println("BYTE “+j+” : " + byteDec[j]);[/code]
Saída
TAMANHO BYTE HEX : 6
Conversão para Decimal : 1001552753460
TAMANHO BYTE DEC : 6
Bytes da senha revertida
BYTE 0 : 0
BYTE 1 : -23
BYTE 2 : 49
BYTE 3 : 50
BYTE 4 : 51
BYTE 5 : 52
Ou seja, a reversão está me adicionando um byte 0 no inicio dela, por que?
Eu consegui visualizar que isto só acontece quando a senha convertida para hexadecimal começa com letra… caso ela comece com um número, isto não acontece… por exemplo, teste ao inves da senha é1234 uma e1234… funciona normal o processo de reversão.
OBS: Caso esteja procurando processo de conversão de senha para hexadecimal, NUNCA utilize desta forma q utilizei, fiz esse exemplo acima apenas para teste… leia sobre os algoritmos de criptografia SHA-1 ou MD5 e faça esse processo acima sobre os códigos gerados nos algoritmos de criptografia.>