Como converter Byte Array em Hex String em Java

Asad Riaz 12 outubro 2023
  1. HEX_ARRAY[] Método para converter array de bytes em Hex String em Java
  2. Hex.encodeHexString() Método de conversão de Byte Array em Hex String em Java
  3. DatatypeConverter() Método para converter Byte Array em Hex String em Java
  4. append(.format) Método para Conversão de Byte Array Into Hex String em Java
Como converter Byte Array em Hex String em Java

Neste tutorial, aprenderemos como converter array de bytes para string hexadecimal em Java.

HEX_ARRAY[] Método para converter array de bytes em Hex String em Java

O primeiro método pelo qual começaremos, para esta conversão utilizaremos HEX_ARRAY[]consistindo de todos os valores hexadecimais possíveis. Este método é mais rápido do que qualquer outra alternativa.

Códigos de exemplo:

public class SimpleTesting {
  public static void main(String[] args) {
    char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
    byte b[] = new byte[2];
    b[0] = 20;
    b[1] = 10;
    char[] hexChars = new char[b.length * 2];
    for (int j = 0; j < b.length; j++) {
      int v = b[j] & 0xFF;
      hexChars[j * 2] = HEX_ARRAY[v >>> 4];
      hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
    }
    System.out.println(hexChars);
  }
}

Resultado:

140A

Hex.encodeHexString() Método de conversão de Byte Array em Hex String em Java

O segundo método para converter a array de bytes em hexadecimal em Java é o método Hex.encodeHexString(). Uma vez que é uma biblioteca comum do apache, o método apache.commons.codec.binary.Hex() precisa ser importado primeiro dentro do compilador.

Códigos de exemplo:

import java.util.Arrays;
import org.apache.commons.codec.binary.Hex;

public class SimpleTesting {
  public static void main(String[] args) {
    byte[] byteArray = new byte[] {'S', 'i', 'm', 'p', 'l', 'e', 'T', 'e', 's', 't', 'i', 'n', 'g'};
    System.out.println("Byte Array: ");
    System.out.println(Arrays.toString(byteArray));
    System.out.println("Hex String Conversion: " + Hex.encodeHexString(byteArray));
  }
}

Resultado:

Byte Array: 
[83, 105, 109, 112, 108, 101, 84, 101, 115, 116, 105, 110, 103]
Hex String Conversion: 53696d706c6554657374696e67

DatatypeConverter() Método para converter Byte Array em Hex String em Java

Outra abordagem é javax.xml.bind.DatatypeConverter.printHexBinary() método em Java. Este método pega os bytes e o converte em Hex a partir de uma array.

Códigos de exemplo:

import java.util.Arrays;
import javax.xml.bind.*;

public class SimpleTesting {
  public static void main(String[] args) {
    byte byteArray[] = {(byte) 00, (byte) 10, (byte) 20, (byte) 30, (byte) 40};
    String hexString = javax.xml.bind.DatatypeConverter.printHexBinary(byteArray);
    System.out.println("Byte Array: ");
    System.out.println(Arrays.toString(byteArray));
    System.out.println("Hex String Conversion: " + hexString);
  }
}

Resultado:

Byte Array: 
[0, 10, 20, 30, 40]
Hex String Conversion: 000A141E28

append(.format) Método para Conversão de Byte Array Into Hex String em Java

Outro método que pode ser utilizado é o de incluir append(.format) utilizando stringBuilder em Java. Ele funciona convertendo cada valor de byte array e convertendo um por um para hex string de acordo.

Códigos de exemplo:

public class SimpleTesting {
  public static void main(String[] args) {
    byte a[] = new byte[2];
    a[0] = 20;
    a[1] = 10;
    StringBuilder sb = new StringBuilder(a.length * 2);
    for (byte b : a) sb.append(String.format("%02x", b));
    System.out.println(sb);
  }
}

Resultado:

140a

Artigo relacionado - Java Array

Artigo relacionado - Java String