codeigniter — генерирует HMAC SHA1 для Rail PNR API в переполнении стека

Я пытаюсь сгенерировать HMAC SHA1 Hash, чтобы использовать Железнодорожный PNR API.

я использую PHP Framework Codeigniter. Я использовал данный помощник Вот.

Затем я попытался сгенерировать хеш и сравнить его с Хеш-генератор дано в Rail PNR API сайт.

Но и хеш, то есть тот, который я сгенерировал, и тот, который я получаю из Rail PNR API сайт не то же самое.

Затем я попытался использовать онлайн-инструменты для генерации значения хеша для того же. Но все же генерируемый хеш не совпадает с тем, который исходит от сайта API.

Мои три данных следующие:

  • PNR: 1234567890
  • Формат: JSON
  • Открытый ключ Api: <My Public Api Key>

Таким образом, данные, которые должны быть хешированы: 1234567890json<My Public Api Key> с использованием <My Private Api Key>

Я не знаю, если метод генерирования хэша неправильный или я делаю это неправильно. Я в значительной степени следовал за каждым шагом, который заявлен там правильно.

Я в порядке, если решение доступно в Javascript, но PHP является более предпочтительным.

РЕДАКТИРОВАТЬ:

Я даже прочитал следующее, но они не могли помочь:

Попытка цифровой подписи через HMAC-SHA1 с PHP

Дайджест OpenSSL HMAC-SHA1 не соответствует Crypto

Пожалуйста, помогите мне здесь …

Благодарю.

1

Решение

Значения, которые должны быть переданы в API, должны быть в алфавитном порядке. Как и в моем случае выше, если мы расположим ключи в алфавитном порядке ключи будет: формат, pbapisign (то есть открытый ключ) а также PNR.

Таким образом, строка для хеширования будет 'json'.'<My Public API Key>'.'1234567890',

Теперь для генерации хеша вы можете использовать любую функцию PHP. Я использую hash_hmac () функция для генерации хеша.

Теперь это работает для меня. Надеюсь, что это поможет любому, кто работает с Rail PNR API.

Благодарю.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]