微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php 进行 hamc sha1 加密

实现方法

   /**
    * @使用HMAC-SHA1算法生成oauth_signature签名值
    *
    * @param $key  密钥
    * @param $str  源串
    *
    * @return 签名值
    */

   function get_signature($str, $key)
   {
       $signature = "";
       if (function_exists('hash_hmac')) {
           $signature = base64_encode(hash_hmac("sha1", $str, $key, true));
       } else {
           $blocksize = 64;
           $hashfunc = 'sha1';
           if (strlen($key) > $blocksize) {
               $key = pack('H*', $hashfunc($key));
           }
           $key = str_pad($key, $blocksize, chr(0x00));
           $ipad = str_repeat(chr(0x36), $blocksize);
           $opad = str_repeat(chr(0x5c), $blocksize);
           $hmac = pack(
               'H*', $hashfunc(
                   ($key ^ $opad) . pack(
                       'H*', $hashfunc(
                           ($key ^ $ipad) . $str
                       )
                   )
               )
           );
           $signature = base64_encode($hmac);
       }
       return $signature;
   }

调用

$this->get_signature('GET@/api/v1/user/@a=b&c=d@1569564388','50BE03427C039AD53391586BF9D7A907');

// ctbXiklm0xqkv42xYgrtRvFPmwQ=

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐