Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
用php生成数字签名_Php_Ruby_Digital Signature_Sha256 - Fatal编程技术网

用php生成数字签名

用php生成数字签名,php,ruby,digital-signature,sha256,Php,Ruby,Digital Signature,Sha256,我曾经用Ruby生成数字签名,如下所示: def generate_signature data = "Databeingpassed" secret_key = "Somesecretkey" digest = OpenSSL::Digest::Digest.new('sha256') Base64.encode64(OpenSSL::HMAC.digest(digest, secret_key, data)).strip end Output: 2XBK7UXA9oDsf

我曾经用Ruby生成数字签名,如下所示:

def generate_signature
  data = "Databeingpassed"
  secret_key = "Somesecretkey" 
  digest = OpenSSL::Digest::Digest.new('sha256')
  Base64.encode64(OpenSSL::HMAC.digest(digest, secret_key, data)).strip
end

Output: 2XBK7UXA9oDsfJj1TBE2maptpB6i1MJ4uadY1AXlQOQ=
如何使用Php实现同样的效果,我在Php中使用了以下代码,但是输出是不同的

function generate_signature() {
  $data = "Databeingpassed"
  $secret_key = "Somesecretkey" 

  $message = hash('sha256', $secret_key, $data);
  return base64_encode($message);
}

Output: hgy/KMG3zTSgjUrzA/3nNvN+vApna6A7JqtZwx+r9Ng=

有什么想法吗?

我找到了一种方法,以防有人需要:

function generate_signature() {
  $data = "Databeingpassed"
  $secret_key = "Somesecretkey" 

  return base64_encode(hash_hmac('sha256', $data, $secret_key, true));
}
输出:

2XBK7UXA9oDsfJj1TBE2maptpB6i1MJ4uadY1AXlQOQ=