Как расчитать подпись хэша в Python 3? Например, наш секретный ключ – top-secret. Наш JSON-запрос – {"version": 1.0}. Подпись в этом случае будет формироваться как HMAC sha512. Подпись: fb909103d8177205a227a1f58079e4bda61be8e32faa71cd1ae17487651b42c3676073f827d208b53e8198ca231a3259cafeeb7521932e6e1f4ac7d177055d09 Как реализовать это на Python 3? Я пытался, но "оно" работает не такimport jws header = {'alg': 'HS512' } payload = {'version': 1.0} signature = jws.sign(header, payload, 'top-secret') print(signature) Это выдаёт LIFRnPatzo36ak_DHzkkqfrW-leq5gr_Tv3OWL7hrXExLo4P2qcDqUyK_UON6E6VfAy04ROYcprK7yOndopI3g Кто может памагити
Ваш код почти верный, но вы используете неправильную библиотеку. Для вычисления HMAC SHA512 подписи в Python 3 вам следует использовать библиотеку hashlib, а не jws. Вот как вы можете это реализовать:
Этот код использует модуль hmac для вычисления HMAC с использованием SHA512 и модуль hashlib для хеширования. Он преобразует словарь данных в строку JSON, кодирует ее в байты и затем вычисляет подпись. Распечатанный результат будет таким же, как вы указали в вашем вопросе.
Ваш код почти верный, но вы используете неправильную библиотеку. Для вычисления HMAC SHA512 подписи в Python 3 вам следует использовать библиотеку hashlib, а не jws. Вот как вы можете это реализовать:
import jsonimport hmac
import hashlib
key = b'top-secret'
data = {"version": 1.0}
data_str = json.dumps(data).encode('utf-8')
signature = hmac.new(key, data_str, hashlib.sha512).hexdigest()
print(signature)
Этот код использует модуль hmac для вычисления HMAC с использованием SHA512 и модуль hashlib для хеширования. Он преобразует словарь данных в строку JSON, кодирует ее в байты и затем вычисляет подпись. Распечатанный результат будет таким же, как вы указали в вашем вопросе.