Convertir hexadecimal a Base64 en Python

Muhammad Maisam Abbas 21 junio 2023
  1. Convierta HEX a BASE64 con el módulo códecs en Python
  2. Convierta HEX a BASE64 con el módulo base64 en Python
  3. Convierta HEX a BASE64 con el módulo binascii en Python
  4. Convierta HEX a BASE64 en Python2
Convertir hexadecimal a Base64 en Python

Este tutorial discutirá los métodos para convertir hexadecimal a base64 en Python.

Convierta HEX a BASE64 con el módulo códecs en Python

El módulo códecs en Python proporciona los métodos encode() y decode() para convertir entre diferentes formatos de codificación de texto.

La función encode() toma dos parámetros; una cadena de entrada y el formato en el que necesita codificar esa cadena. El tipo de retorno de esta función encode() es una cadena codificada en el formato especificado en el segundo parámetro.

La función decode() también toma solo dos parámetros; una cadena de entrada codificada y el formato en el que se codifica la cadena de entrada. La función decode() devuelve una cadena decodificada según el formato especificado en el segundo parámetro.

Para codificar una cadena hexadecimal en una cadena base64, primero decodificaremos esa cadena hexadecimal en una cadena normal con la función decode() especificando hex como segundo parámetro. A continuación, codificaremos la salida de la operación anterior con la función encode() especificando base64 como segundo parámetro.

El siguiente fragmento de código explica los pasos necesarios para codificar una cadena hexadecimal en una cadena base64 con el módulo códecs en Python.

import codecs

hex_string = "10000000000002ae"
b64_string = codecs.encode(codecs.decode(hex_string, "hex"), "base64").decode()
print(b64_string)

Producción :

EAAAAAAAAq4=

En el código anterior, codificamos la cadena hexadecimal 10000000000002ae en la cadena base64 EAAAAAAAAq4= con el módulo códecs.

Convierta HEX a BASE64 con el módulo base64 en Python

Otro módulo útil en Python para convertir entre diferentes formatos de codificación de texto es base64. El módulo base64 proporciona las funciones b64encode() y b64decode() para esta tarea.

La función b64encode() toma la cadena de bytes como parámetro de entrada, la convierte al formato base64 y devuelve la cadena codificada en base64. De manera similar, la función b64decode() toma la cadena codificada en base64, la convierte en una cadena de bytes y devuelve la cadena de bytes decodificada.

Para este problema en particular, primero tendremos que convertir nuestra cadena de entrada en una cadena de bytes con la función bytes.fromhex(). Luego codificaremos esa cadena de bytes en una cadena base64 con la función b64encode().

El siguiente fragmento de código demuestra cómo podemos codificar una cadena hexadecimal en una cadena base64 con el módulo base64 en Python.

from base64 import b64encode, b64decode

hex_string = "10000000000002ae"
b64_string = b64encode(bytes.fromhex(hex_string)).decode()
print(b64_string)

Producción :

EAAAAAAAAq4=

En el código anterior, codificamos la cadena hexadecimal 10000000000002ae en la cadena base64 EAAAAAAAAq4= con el módulo base64.

Convierta HEX a BASE64 con el módulo binascii en Python

También podemos usar el módulo binascii de Python para convertir entre diferentes formatos de codificación de texto. El módulo binascii proporciona funciones como unhexlify() y b2a_base64() que se pueden utilizar en este escenario.

La función unhexlify() toma la cadena hexadecimal como parámetro de entrada, la convierte en una cadena de bytes y devuelve los resultados. La función b2a_base64() toma una cadena de bytes como parámetro de entrada, la convierte en una cadena base64 y devuelve los resultados.

En nuestro problema particular, primero debemos convertir la cadena hexadecimal en una cadena de bytes con la función unhexlify() y luego usar la función b2a_base64() para convertir el resultado de la operación anterior en una cadena base64.

El siguiente ejemplo de código demuestra cómo podemos usar el módulo binascii para convertir una cadena hexadecimal a base64 en Python.

from binascii import unhexlify, b2a_base64

hex_string = "10000000000002ae"
b64_string = b2a_base64(unhexlify(hex_string))
print(b64_string)

Producción :

EAAAAAAAAq4=

En el código anterior, codificamos la cadena hexadecimal 100000000000002ae en la cadena base64 EAAAAAAAAq4= con el módulo binascii. De todos los métodos discutidos anteriormente, el método binascii es el más sencillo y necesitamos escribir la menor cantidad de código para implementarlo.

Convierta HEX a BASE64 en Python2

Por otro lado, si estamos trabajando con Python2, que admite de forma nativa tanto cadenas hexadecimales como base64, podemos reducir drásticamente la cantidad de código necesario. El siguiente fragmento de código demuestra cómo podemos convertir una cadena hexadecimal en una cadena base64 en Python2.

hex_string = "10000000000002ae"
b64_string = hex_string.decode("hex").encode("base64")
print(b64_string)

Producción :

EAAAAAAAAq4=

No necesitábamos importar ningún módulo en el código anterior porque Python2 admite de forma nativa cadenas hexadecimales y base64. Primero convertimos la cadena hexadecimal en una cadena de bytes con la función decode("hex") y luego codificamos su salida en base64 con la función encode("base64").

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Python Hex