在ruby编码中生成类似hash_hmac的API签名

时间:2014-11-18 06:54:15

标签: php ruby-on-rails ruby

我想在ruby中生成API签名,我在PHP中编写代码,我希望与精确输出匹配。

PHP代码

$strToSign = "A"
$api_key = "B"
hash_hmac('sha256', $strToSign, $api_key, false) 
OutPut= 7c1264983a16877cd924d705b4e1305cc637f074ed41d081472142902bfac1c6

我想要与ruby相同的输出,我应该使用哪个库或编码来匹配确切的输出。

我正在使用OpenSSL :: HMAC.hexdigest()来匹配输出,但它给了我不同的字符串

作为参考,我使用以下代码进行转换,但对我不起作用,请帮助我获取输出。

Ruby Code

   str_sign = "A"
   api_key = "B"
   OpenSSL::HMAC.hexdigest('sha256', str_sign, api_key)
   OutPut= 8189105e6b068e191c753c0e8acc2390f4fddef5bf992c524b5234b24a59d773

1 个答案:

答案 0 :(得分:1)

我得到了答案,我犯了错误。

在ruby HMAC.hexdigest()中接受反向参数而不是hash_hmac()。 首先需要api_key然后str_sign。

EX。

   str_sign = "A"
   api_key = "B"
   OpenSSL::HMAC.hexdigest('sha256', api_key, str_sign)
   OutPut= 7c1264983a16877cd924d705b4e1305cc637f074ed41d081472142902bfac1c6