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