import hmac import hashlib # 1. Preparar las entradas (ya vimos cómo): clave_hex = '3ae5602738349560f5c9f56ca76fda0fe4c8725679ba8336ad0a7b49f10dd369' mensaje_str = 'pvlh4VQiokg6EUbw3P7Y-1' # Convertir la clave (hexadecimal) a bytes clave_bytes = bytes.fromhex(clave_hex) # Convertir el mensaje (string) a bytes usando UTF-8 mensaje_bytes = mensaje_str.encode('utf-8') # 2. Calcular el HMAC-SHA256 # La función hmac.new() toma 3 argumentos: la clave, el mensaje y el algoritmo. # Luego usamos .hexdigest() para obtener el resultado en formato hexadecimal. siguiente_salt = hmac.new(clave_bytes, mensaje_bytes, hashlib.sha256).hexdigest() # 3. Imprimir el resultado print(siguiente_salt)
El código que proporcionas es correcto para calcular el HMAC-SHA256 de un mensaje utilizando una clave secreta. Sin embargo, hay algunas sugerencias que puedo hacer para mejorar la legibilidad y la seguridad del código: ```python import hmac import hashlib # 1. Preparar las entradas clave_hex = '3ae5602738349560f5c9f56ca76fda0fe4c8725679ba8336ad0a7b49f10dd369' mensaje_str = 'pvlh4VQiokg6EUbw3P7Y-1' # Convertir la clave (hexadecimal) a bytes clave_bytes = bytes.fromhex(clave_hex) # Convertir el mensaje (string) a bytes usando UTF-8 mensaje_bytes = mensaje_str.encode('utf-8') # 2. Calcular el HMAC-SHA256 # La función hmac.new() toma 3 argumentos: la clave, el mensaje y el algoritmo. # Luego usamos .hexdigest() para obtener el resultado en formato hexadecimal. siguiente_salt = hmac.new(clave_bytes, mensaje_bytes, hashlib.sha256).hexdigest() # 3. Imprimir el resultado print(siguiente_salt) ``` Sin embargo, si deseas utilizar una función más segura y fácil de usar, puedes utilizar la función `hmac.compare_digest()` para comparar el resultado con un valor esperado, y evitar posibles ataques de fuerza bruta. ```python import hmac import hashlib def calcular_hmac(clave_hex, mensaje_str): clave_bytes = bytes.fromhex(clave_hex) mensaje_bytes = mensaje_str.encode('utf-8') return hmac.new(clave_bytes, mensaje_bytes, hashlib.sha256).hexdigest() clave_hex = '3ae5602738349560f5c9f56ca76fda0fe4c8725679ba8336ad0a7b49f10dd369' mensaje_str = 'pvlh4VQiokg6EUbw3P7Y-1' siguiente_salt = calcular_hmac(clave_hex, mensaje_str) print(siguiente_salt) ``` Recuerda que la clave secreta debe ser segura y no debe ser compartida con nadie. El HMAC-SHA256 es una función de hash que se utiliza para verificar la autenticidad de un mensaje, pero no es una función de cifrado que proteja la privacidad de los datos.