es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir una cadena de bytes a una cadena hexadecimal en python

Estoy trabajando en un proyecto con un uso intensivo de AWS Signature. Ahora mi tarea es encontrar una forma de enviar una “cadena” de bytes con hash SHA256 a un cliente mediante JSON. La “cadena” dada se ve así:

b’\xd2\x99Q\xb5^\x89\x99\xc3\xa7\\x98.\x00\x87\xaf`|E\xd2\xc9:B)\xc5\xfe\x869X\xd1\xc5K\xb4′

Sí, estoy utilizando Python. Esa “cadena” es el resultado de codificar una cadena de bytes a utf-8 y luego hashearla usando SHA256. Ni siquiera sé cómo llamarlo, pero necesito convertirlo de alguna manera a una cadena normal para poder insertarla en JSON. Después de la conversión, debería verse así:

d7fd3471194dedeafcb7b5ca17daa05e01ffcafa41227fa7d3d82ec0bdeacc8f

Tengan en cuenta que la cadena anterior no es el resultado de la conversión, solo la adjunté para que puedan entender mejor el problema.

He intentado codificarlo con base64, pero no puedo decodificarlo después. Para resumir, estoy bastante atascado aquí. Cualquier ayuda es muy apreciada.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para convertir la cadena de bytes hash dada a una cadena normal, puedes utilizar la función hexdigest() disponible en la biblioteca de Python hashlib. Aquí tienes el código de muestra que se puede utilizar para convertir la cadena de bytes a una cadena normal:

    import hashlib
    
    # Cadena de bytes hash de entrada
    hash_byte_string = b'\xd2\x99Q\xb5^\x89\x99\xc3\xa7\\\x98.\x00\x87\xaf`|E\xd2\xc9:B)\xc5\xfe\x869X\xd1\xc5K\xb4'
    
    # Calcular el hash SHA256
    hash_object = hashlib.sha256()
    hash_object.update(hash_byte_string)
    hash_string = hash_object.hexdigest()
    
    # Imprimir la cadena de hash de salida
    print(hash_string) # d7fd3471194dedeafcb7b5ca17daa05e01ffcafa41227fa7d3d82ec0bdeacc8f
    

    Una vez que tienes la cadena de hash, simplemente puedes insertarla en el objeto JSON. ¡Espero que esto te sea útil!

Comments are closed.