Convertir hexadecimal a Base64 en Python
-
Convierta HEX a BASE64 con el módulo
códecs
en Python -
Convierta HEX a BASE64 con el módulo
base64
en Python -
Convierta HEX a BASE64 con el módulo
binascii
en Python - Convierta HEX a BASE64 en Python2
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")
.
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