开发者

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

开发者 https://www.devze.com 2022-12-13 21:43 出处:网络
PHP code: function compute_signature($key, $hash_string) { $digest = hash_hmac(\"sha1\", $hash_string, $key, true);

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

精彩评论

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