我正在尝试生成HMAC SHA1哈希以使用 Railway PNR API 。
我正在使用 PHP Framework Codeigniter 。我使用了给定here的助手。
然后我尝试生成哈希并将其与铁路中给出的 Hash Generator 进行比较PNR API站点。
但是,我生成的哈希值和我从 Rail PNR API站点获得的哈希值都不相同。< br />
然后我尝试使用在线工具生成相同的哈希值。但是生成的哈希值仍然与来自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
请帮帮我......
感谢。
答案 0 :(得分:0)
API中要传递的值应该按字母顺序排列。就像我上面的情况一样,如果我们按字母顺序排列键,键将是: 格式,pbapisign(即公钥) 和的 PNR 的的
因此要散列的字符串将为'json'.'<My Public API Key>'.'1234567890'
。
现在要生成哈希,基本上你可以使用任何PHP函数。我使用 hash_hmac() 函数生成哈希值。
现在它为我工作。希望这有助于任何使用Rail PNR API的人。
感谢。