我想在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
答案 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