Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby和PHP HMAC不一致_Php_Ruby_Hmac - Fatal编程技术网

Ruby和PHP HMAC不一致

Ruby和PHP HMAC不一致,php,ruby,hmac,Php,Ruby,Hmac,我试图在Ruby中创建一个HMAC,然后在PHP中验证它 红宝石: PHP: 对于Ruby,我得到:20e3f261b762e8371decdf6f42a5892b53025666508e885c708c5b0bfc03d3 对于PHP,我得到:e5f6995ba1496b2fb144329b2d1b3b23c8fa3211486e57bfaec5d993a1da9d15 我和一些同事完全不知所措,任何帮助都将不胜感激。ruby的OpenSSL::HMAC.hexdigest首先希望键,然后

我试图在Ruby中创建一个HMAC,然后在PHP中验证它

红宝石:

PHP:


对于Ruby,我得到:20e3f261b762e8371decdf6f42a5892b53025666508e885c708c5b0bfc03d3

对于PHP,我得到:e5f6995ba1496b2fb144329b2d1b3b23c8fa3211486e57bfaec5d993a1da9d15


我和一些同事完全不知所措,任何帮助都将不胜感激。

ruby的
OpenSSL::HMAC.hexdigest
首先希望
,然后是
消息

irb(main):002:0> OpenSSL::HMAC.hexdigest('sha256','3D2143BD-6F86-449F-992C-65ADC97B968B','A522EBF2-5083-484D-99D9-AA97CE49FC6C,1234567890,/api/comic/aWh62,GET')
=> "e5f6995ba1496b2fb144329b2d1b3b23c8fa3211486e57bfaec5d993a1da9d15"
我注意到

hash = HMAC::SHA256(key) 
hash << a
hash << b
hash << c
小心这个警告。要得到正确的答案,只需做

hash = HMAC::SHA256(key)
hash << "#{a}#{b}#{c}"
hash=HMAC::SHA256(键)

我怀疑字符串的编码不同。好吧,我会被诅咒的。谢谢:)
hash = HMAC::SHA256(key) 
hash << a
hash << b
hash << c
hash_hmac('sha256',$a.$b.$c, $key)
hash = HMAC::SHA256(key)
hash << "#{a}#{b}#{c}"