Convierta Hex a ASCII en Python

Muhammad Waiz Khan 30 enero 2023
  1. Convierta Hex a ASCII en Python usando el método decode()
  2. Convierta Hex a ASCII en Python usando el método codecs.decode()
Convierta Hex a ASCII en Python

Este tutorial analizará varios métodos para convertir una cadena hexadecimal en una cadena ASCII en Python. Supongamos que tenemos una cadena escrita en forma hexadecimal 68656c6c6f y queremos convertirla en una cadena de caracteres ASCII que será hello ya que h es igual a 68 en código ASCII, e es 64, l es 6c y o es 6f.

Podemos convertir una cadena hexadecimal en una cadena ASCII en Python usando los siguientes métodos:

Convierta Hex a ASCII en Python usando el método decode()

El método string.decode(encoding, error) en Python 2 toma una cadena codificada como entrada y la decodifica usando el esquema de codificación especificado en el argumento encoding. El parámetro error especifica los esquemas de manejo de errores a utilizar en caso de un error que puede ser strict, ignore y replace.

Por lo tanto, para convertir una cadena hexadecimal en una cadena ASCII, necesitamos establecer el parámetro encoding del método string.decode() como hex. El siguiente código de ejemplo demuestra cómo utilizar el método string.decode() para convertir un hexadecimal a ASCII en Python 2.

string = "68656c6c6f"
string.decode("hex")

Producción :

hello

En Python 3, el método bytearray.decode(encoding, error) toma un array de bytes como entrada y la decodifica usando el esquema de codificación especificado en el argumento encoding.

Para decodificar una cadena en Python 3, primero necesitamos convertir la cadena en un array de bytes y luego usar el método bytearray.decode() para decodificarla. El método bytearray.fromhex(string) se puede utilizar para convertir la cadena en un array de bytes primero.

El siguiente código de ejemplo demuestra cómo utilizar el método bytearray.decode() y bytearray.fromhex(string) para convertir una cadena hexadecimal en una cadena ASCII en Python 3:

string = "68656c6c6f"
byte_array = bytearray.fromhex(string)
byte_array.decode()

Producción :

hello

Convierta Hex a ASCII en Python usando el método codecs.decode()

El método codecs.decode(obj, encoding, error) es similar al método decode(). Toma un objeto como entrada y lo decodifica usando el esquema de codificación especificado en el argumento encoding. El argumento error especifica el esquema de manejo de errores que se utilizará en caso de error.

En Python 2, codecs.decode() devuelve una cadena como salida, y en Python 3, devuelve un array de bytes. El siguiente código de ejemplo demuestra cómo convertir una cadena hexadecimal a ASCII usando el método codecs.decode() y convertir el array de bytes devuelta en una cadena usando el método str().

import codecs

string = "68656c6c6f"
binary_str = codecs.decode(string, "hex")
print(str(binary_str, "utf-8"))

Producción :

hello

Artículo relacionado - Python ASCII

Artículo relacionado - Python Hex