开发者

PHP giving different hash calculation than ruby, how can I fix?

PHP code:

 function compute_signature($key, $hash_string)
    {
        $digest = hash_hmac("sha1", $hash_string, $key, true);
        return base64_encode($digest);
    }

Ruby Code:

 开发者_运维百科   digest = HMAC.digest(Digest.new(SHA1), Base64.decode64(key), HashString)
return Base64.encode64(digest.to_s()).chomp()

Could this be a charset issue? I found this: C# SHA-1 vs. PHP SHA-1...Different Results?

If so how could I fix? Note I must make PHP match Rubys results, the reverse would not help in this situation.


In the Ruby version you have a base64-encoded key; in PHP you are using the $key directly as a binary key. Could that be the issue?

(As for charsets, well, do you have any non-ASCII in there? What's a typical $hash_string?)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜