Как расчитать подпись хэша в 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
Кто может памагити

21 Авг 2019 в 07:11
200 +1
0
Ответы
1

Ваш код почти верный, но вы используете неправильную библиотеку. Для вычисления HMAC SHA512 подписи в Python 3 вам следует использовать библиотеку hashlib, а не jws. Вот как вы можете это реализовать:

import json
import hmac
import hashlib
key = b'top-secret'
data = {"version": 1.0}
data_str = json.dumpsdatadatadata.encode′utf−8′'utf-8'utf8
signature = hmac.newkey,datastr,hashlib.sha512key, data_str, hashlib.sha512key,datas tr,hashlib.sha512.hexdigest printsignaturesignaturesignature

Этот код использует модуль hmac для вычисления HMAC с использованием SHA512 и модуль hashlib для хеширования. Он преобразует словарь данных в строку JSON, кодирует ее в байты и затем вычисляет подпись. Распечатанный результат будет таким же, как вы указали в вашем вопросе.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир