Cómo convertir un array de bytes en una cadena hexadecimal en Java

Asad Riaz 12 octubre 2023
  1. Hex.encodeHexString() método para convertir un array de bytes en una cadena hexadecimal en Java
  2. DatatypeConverter() método para convertir bytes Array en hexadecimal String en Java
  3. append(.format) método para la conversión del array de bytes en cadena hexadecimal en Java
Cómo convertir un array de bytes en una cadena hexadecimal en Java

En este tutorial, veremos cómo convertir un array de bytes en una cadena hexadecimal en Java.

Hex.encodeHexString() método para convertir un array de bytes en una cadena hexadecimal en Java

El primer método para convertir el array de bytes en una cadena hexadecimal en Java es el método Hex.encodeHexString(). Ya que es una biblioteca común de apache, por lo tanto el método apache.commons.codec.binary.Hex() necesita ser importado primero dentro del compilador.

Códigos de ejemplo:

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));
  }
}

Producción :

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

DatatypeConverter() método para convertir bytes Array en hexadecimal String en Java

Otro enfoque es el método javax.xml.bind.DatatypeConverter.printHexBinary() en Java. Este método toma los bytes y los convierte en hex de un array.

Códigos de ejemplo:

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);
  }
}

Producción :

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

append(.format) método para la conversión del array de bytes en cadena hexadecimal en Java

Otro método que puede ser usado es incluir append(.format) usando StringBuilder en Java. Funciona convirtiendo todos los valores de array de bytes y convirtiéndolos uno a uno en cadena hexadecimal.

Códigos de ejemplo:

import java.nio.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

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));
    String conversion = new String(byteArray);
    System.out.println(conversion);
    System.out.println("Hex String Conversion: " + display(byteArray));
  }
  public static String display(byte[] byteArray1) {
    StringBuilder stringBuilder = new StringBuilder();
    for (byte val : byteArray1) {
      stringBuilder.append(String.format("%02x", val & 0xff));
    }
    return stringBuilder.toString();
  }
}

Producción :

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

Artículo relacionado - Java Array

Artículo relacionado - Java String