PHP openssl_sign()函数代码示例

本文整理汇总了PHP中openssl_sign函数的典型用法代码示例。如果您正苦于以下问题:PHP openssl_sign函数的具体用法?PHP openssl_sign怎么用?PHP openssl_sign使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

示例1: filterHttpRequest

 public function filterHttpRequest($method, $url, $headers = array(), $body = null, $contentType = null)
 {
     if ($this->getAuthSubToken() != null) {
         // AuthSub authentication
         if ($this->getAuthSubPrivateKeyId() != null) {
             // secure AuthSub
             $time = time();
             $nonce = mt_rand(0, 999999999);
             $dataToSign = $method . ' ' . $url . ' ' . $time . ' ' . $nonce;
             // compute signature
             $pKeyId = $this->getAuthSubPrivateKeyId();
             $signSuccess = openssl_sign($dataToSign, $signature, $pKeyId, OPENSSL_ALGO_SHA1);
             if (!$signSuccess) {
                 require_once 'Zend/Gdata/App/Exception.php';
                 throw new Zend_Gdata_App_Exception('openssl_signing failure - returned false');
             }
             // encode signature
             $encodedSignature = base64_encode($signature);
             // final header
             $headers['authorization'] = 'AuthSub token="' . $this->getAuthSubToken() . '" ' . 'data="' . $dataToSign . '" ' . 'sig="' . $encodedSignature . '" ' . 'sigalg="rsa-sha1"';
         } else {
             // AuthSub without secure tokens
             $headers['authorization'] = 'AuthSub token="' . $this->getAuthSubToken() . '"';
         }
     } elseif ($this->getClientLoginToken() != null) {
         $headers['authorization'] = 'GoogleLogin auth=' . $this->getClientLoginToken();
     }
     return array('method' => $method, 'url' => $url, 'body' => $body, 'headers' => $headers, 'contentType' => $contentType);
 }

示例2: signData

 /**
  * Generate a signature of the given data using a private key and an algorithm.
  *
  * @param string     $data
  * @param PrivateKey $privateKey
  * @param int        $algorithm
  *
  * @return string
  */
 public function signData($data, PrivateKey $privateKey, $algorithm = OPENSSL_ALGO_SHA256)
 {
     if (!openssl_sign($data, $signature, $privateKey->getResource(), $algorithm)) {
         throw new DataSigningException(sprintf('OpenSSL data signing failed with error: %s', openssl_error_string()));
     }
     return $signature;
 }

示例3: sign

 /**
  * 签名数据
  *
  * &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开源商城源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值