【问题标题】:Generating digital signature in php在php中生成数字签名
【发布时间】:2013-09-17 20:17:57
【问题描述】:

我曾经像这样在 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=

有什么想法吗?

【问题讨论】:

    标签: php ruby digital-signature sha256


    【解决方案1】:

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

    function generate_signature() {
      $data = "Databeingpassed"
      $secret_key = "Somesecretkey" 
    
      return base64_encode(hash_hmac('sha256', $data, $secret_key, true));
    }
    

    输出:

    2XBK7UXA9oDsfJj1TBE2maptpB6i1MJ4uadY1AXlQOQ=
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      相关资源
      最近更新 更多