Как часть стандарта IEFT, мне нужно хэшировать тело запроса JSON.
У меня есть справочный код в JS, который, как известно, производит правильный хеш, но теперь я застрял ссоответствие результата в Python.
Тело JSON:
body = {"description":"Test ticket"}
Код JS:
bodyHash = CryptoJS.SHA256(body).toString(CryptoJS.enc.Base64)
Обратите внимание, что это не JSON.stringify(body)
!«Правильный» хэш (тот, который я ищу, чтобы соответствовать):
TqXFCKZWbnYkBUP4/rBv1Fd3e+OVScQBZDav2mXSMw4=
Решение Python должно быть таким:
body_hash = base64.b64encode(hashlib.sha256(repr(body).encode('utf-8')).digest()).decode('ascii')
, который производит что-то другое:
z0RpYmKAIfVibpSLJx/iRDZaNHJkJ2+rcenc1KEEAUw=
Есть ли способ сопоставить эти хэши?Как хэшируется объект JS в CryptoJS?