在PHP中为Rail PNR API生成HMAC SHA1

时间:2015-04-18 17:13:17

标签: php codeigniter api hash hmacsha1

我正在尝试生成HMAC SHA1哈希以使用 Railway PNR API

我正在使用 PHP Framework Codeigniter 。我使用了给定here的助手。

然后我尝试生成哈希并将其与铁路中给出的 Hash Generator 进行比较PNR API站点

但是,我生成的哈希值和我从 Rail PNR API站点获得的哈希值都不相同。< br />
然后我尝试使用在线工具生成相同的哈希值。但是生成的哈希值仍然与来自API站点的哈希值相同。

我的三个数据如下:

  • PNR: 1234567890
  • 格式: json
  • 公开Api密钥: <My Public Api Key>

因此,必须使用1234567890json<My Public Api Key>进行散列的数据为:<My Private Api Key> 我不知道如果生成哈希的方法是错误的,或者我做错了。我几乎遵循了there正确陈述的每一步。

如果解决方案在 javascript 中可用,我很好,但 PHP 是更受欢迎的。

修改

我甚至阅读了以下内容,但他们无能为力:

- Trying to digitally sign via HMAC-SHA1 with PHP

- OpenSSL HMAC-SHA1 digest does not match Crypto's

请帮帮我......

感谢。

1 个答案:

答案 0 :(得分:0)

API中要传递的值应该按字母顺序排列。就像我上面的情况一样,如果我们按字母顺序排列键,将是: 格式,pbapisign(即公钥) PNR

因此要散列的字符串将为'json'.'<My Public API Key>'.'1234567890'

现在要生成哈希,基本上你可以使用任何PHP函数。我使用 hash_hmac() 函数生成哈希值。

现在它为我工作。希望这有助于任何使用Rail PNR API的人。

感谢。