Формирование подписи

Запросы для взаимодействия с сервисом подписываются с использованием алгоритма SHA256.

Подпись формируется отдельно для каждого запроса.

Для формирования подписи, выполните следующие шаги:

  1. Тело запроса сортируется по алфавиту и кодируется в BASE64.

  2. Конкатенируем кодированное тело запроса и secret_key(предоставляется отдельно)

  3. Используя хэш функцию SHA256 хэшируем полученный результат конкатенации

  4. Добавляем подпись в заголовках запроса X-Signature

Поля запроса заполненные как "" не участвуют в формировании подписи./

import json
import base64
import hashlib
#Тело запроса меняется в зависимости от запроса

request_data = {
  "agent": "tarlan",
  "project": "mobile",
  "service_code": "101",
}
#Для примера взяли secret 12345
secret = "12345"

sorted_data = json.dumps(
      request_data,
      sort_keys=True,
      ensure_ascii=False,
      separators=(',', ':'),
  )


base64_encoded_data = base64.b64encode(sorted_data.encode()).decode()

data_to_sign = base64_encoded_data + secret

sha256_hash = hashlib.sha256(data_to_sign.encode()).hexdigest()

print("Sign:",sha256_hash)

Last updated