0

私は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=

何か案は?

4

1 に答える 1

0

誰かが必要な場合に備えて、私は方法を見つけました:

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

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

出力:

2XBK7UXA9oDsfJj1TBE2maptpB6i1MJ4uadY1AXlQOQ=
于 2013-09-17T12:17:57.143 に答える