Как правильно переписать этот хеш-код Python в Javascript браузера?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно переписать этот хеш-код Python в Javascript браузера?

Сообщение Anonymous »


Чтобы отправлять запросы к API, мне нужно добавить заголовок со специальной хешированной строкой. Он использует соль с SHA256.

У меня был такой код Python, который работает хорошо:

API_VERSION = 4 ПОДДОМЕН = 'api' ДОМЕН = 'example.com' PARTNER_KEY = '550c04bf5cb2b' HMAC_SECRET = b'd84e9e5f191ea4ffc39c22d11c77dd6c' Защиту create_auth_header (путь, метод): дата = datetime.datetime.now().isoformat() string_to_hash = f'{PARTNER_KEY}\n{дата}\n{метод}\n{СУБДОМЕН}.{ДОМЕН}\n/v{API_VERSION}/{путь}\n' подпись = hmac.new(HMAC_SECRET, msg=string_to_hash.encode('utf-8'), дайджестмод=hashlib.sha256).hexdigest() auth = f"PartnerKey={PARTNER_KEY}, Signature={signature}, Timestamp={date}" возврат авторизации Я хочу то же самое в Javascript.

После некоторого поиска я нашел следующий код с использованием crypto-JS (из https://cdnjs.cloudflare.com/ajax/libs/ ... /crypto-js. min.js):

const API_VERSION = 4; const ПОДДОМЕН = 'api'; const ДОМЕН = 'example.com'; const PARTNER_KEY = '550c04bf5cb2b'; const HMAC_SECRET = 'd84e9e5f191ea4ffc39c22d11c77dd6c'; функция create_auth_header (путь, метод) { константная дата = новая дата().toISOString(); const string_to_hash = `${PARTNER_KEY}\n${date}\n${method}\n${SUBDOMAIN}.${DOMAIN}\n/v${API_VERSION}/${path}\n`; константный кодировщик = новый TextEncoder(); константные данные = encoder.encode(string_to_hash); константный ключ = encoder.encode(HMAC_SECRET); return crypto.subtle.importKey('raw', key, {name: 'HMAC', хэш: 'SHA-256'}, true, ['sign']) .then((cryptoKey) => { return crypto.subtle.sign('HMAC', cryptoKey, data); }) .then((подпись) => { const SignatureHex = Array.from(new Uint8Array(signature)).map((byte) => { return ('0' + byte.toString(16)).slice(-2); }).присоединиться(''); вернуть подписьHex; }) .catch((ошибка) => { console.error('Ошибка:', ошибка); }); } Однако два кода дадут разные результаты для одной и той же даты, и я не знаю, почему.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как переписать мой код Pinescript в Python
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как переписать код Python с помощью Pyscript
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как переписать код Python с помощью Pyscript
    Anonymous » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Как переписать код Python с помощью Pyscript
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как переписать код Python с помощью Pyscript
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»