<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    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

     /**
      * 簽名數據
      *
      * @param string $data
      *        	要簽名的數據
      * @param string $private
      *        	私鑰文件
      * @return string 簽名的16進制數據
      */
     private function sign($data)
     {
         $p = openssl_pkey_get_private($this->chinaums_config['privateKey']);
         openssl_sign($data, $signature, $p);
         openssl_free_key($p);
         return bin2hex($signature);
     }
    

    示例4: generateRSA

     private static function generateRSA($input, $secret, $algo)
     {
         if (!openssl_sign($input, $signature, $secret, $algo)) {
             throw new Exception("Unable to sign data.");
         }
         return $signature;
     }
    

    示例5: sign

     /**
      * @param array $params
      * @return string
      */
     public function sign(array $params)
     {
         $digestText = implode('|', $params);
         openssl_sign($digestText, $digest, $this->getPrivateKeyResource());
         $digest = base64_encode($digest);
         return $digest;
     }
    

    示例6: sign

     /**
      * Signs the data using this private key
      *
      * @param   string data
      * @return  string
      * @throws  security.crypto.CryptoException if the operation fails
      */
     public function sign($data)
     {
         if (false === openssl_sign($data, $signature, $this->_hdl)) {
             throw new CryptoException('Could not sign data', OpenSslUtil::getErrors());
         }
         return $signature;
     }
    

    示例7: createRSASign

     /**
      * 對數據進行RSA簽名
      *
      * @param string $data
      *            需要進行簽名的數據.
      * @param string $privateKey
      *            簽名用戶的私鑰
      *            
      * @return string
      */
     public static function createRSASign($data, $privateKey)
     {
         $private_key_id = openssl_pkey_get_private($privateKey);
         openssl_sign($data, $signature, $private_key_id, OPENSSL_ALGO_SHA1);
         openssl_free_key($private_key_id);
         return base64_encode($signature);
     }
    

    示例8: array

    /** 
     * 
     array(3) {
      ["cert"]=>
      string(1334) "-----BEGIN CERTIFICATE-----
    MIIDrTCCAxagAwIBAgIQWQKhEMePlPB2aPEW+YUIIDANBgkqhkiG9w0BAQUFADAk
    MQswCQYDVQQGEwJDTjEVMBMGA1UEChMMQ0ZDQSBURVNUIENBMB4XDTExMDgyNDA3
    NDc1MFoXDTEzMDgyNDA3NDc1MFowczELMAkGA1UEBhMCQ04xFTATBgNVBAoTDENG
    Q0EgVEVTVCBDQTERMA8GA1UECxMITG9jYWwgUkExFDASBgNVBAsTC0VudGVycHJp
    c2VzMSQwIgYDVQQDFBswNDFAWjIwMTEwODI0QFRFU1RAMDAwMDAwMjMwgZ8wDQYJ
    KoZIhvcNAQEBBQADgY0AMIGJAoGBAK8kL0wwZEqbFEEjQoyMO3PYqighzpc6WMc9
    aFN8BqaFXcDm/nI+JmviFowOm6VTTxjQnGx6DAPB9uxxCuEbue+KUiohr4eIjXGR
    8XGO01Ssw3mGm87wdRR/CrNvkR2WVBy/8LTHEGR4IQIhvzokmvLu3LiY0GQ3aJ1s
    bGV0yL3RAgMBAAGjggGPMIIBizAfBgNVHSMEGDAWgBRGctwlcp8CTlWDtYD5C9vp
    k7P0RTAdBgNVHQ4EFgQUiFLVc/e56LvykZgnvwbiVHMKt0swCwYDVR0PBAQDAgTw
    MAwGA1UdEwQFMAMBAQAwOwYDVR0lBDQwMgYIKwYBBQUHAwEGCCsGAQUFBwMCBggr
    BgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIMIHwBgNVHR8EgegwgeUwT6BNoEuk
    STBHMQswCQYDVQQGEwJDTjEVMBMGA1UEChMMQ0ZDQSBURVNUIENBMQwwCgYDVQQL
    EwNDUkwxEzARBgNVBAMTCmNybDEyN18xNTcwgZGggY6ggYuGgYhsZGFwOi8vdGVz
    dGxkYXAuY2ZjYS5jb20uY246Mzg5L0NOPWNybDEyN18xNTcsT1U9Q1JMLE89Q0ZD
    QSBURVNUIENBLEM9Q04/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29i
    amVjdGNsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MA0GCSqGSIb3DQEBBQUAA4GB
    AFakQbOuB4QHfvewOyDy1mW4iQSRgP2v47QFyExvRk/iOZkUT3tWsYaSLuyRyQV2
    eg9lmuMZmB8ITL/0ed7DUsXN7mdoKHmgsBga1Sp8UhR3dznqOSfaAYJqDaIV6gei
    TH0Fbj4FTRxcIsf20WzFUN65kkop3hl1ZssxxvA9Asns
    -----END CERTIFICATE-----
    "
      ["pkey"]=>
      string(887) "-----BEGIN RSA PRIVATE KEY-----
    MIICXQIBAAKBgQCvJC9MMGRKmxRBI0KMjDtz2KooIc6XOljHPWhTfAamhV3A5v5y
    PiZr4haMDpulU08Y0JxsegwDwfbscQrhG7nvilIqIa+HiI1xkfFxjtNUrMN5hpvO
    8HUUfwqzb5EdllQcv/C0xxBkeCECIb86JJry7ty4mNBkN2idbGxldMi90QIDAQAB
    AoGATvTIIdfbDss06Vyk/smlb8dohmkfQov6Q/AKHUDXmrCbIIDCiuw70/z73y4i
    uviAuxYovrqSugryb4tStUMTogmft4methz1/O/083XHwBNKBPnS2fobYDfBxqkX
    tH26woCjrEr/O/wngo6iFp7b5yJlyXapN0x+iOF3CShIhAECQQD2gZ6LLYdxSP8i
    aRYAPOh10mF5IHt2dl89eOjNiqVGMlkV5aXNT80jAQr/kWGZfIjscb/xkawSKQKs
    ovcn99GRAkEAteL02mBrCLfn2idBwXTdil+yeigReAZmRpqQuAfTRZN4RM+5Dw3q
    X0IiCkR3oyiwx89n1eGmz1JTZRxoY1AIQQJAWVbQ5xAxLlWOYiJD3wI0Hb+JpCSp
    ml18VwMjHJtLGw3US6NXW/m4Fx+hpM5D2STRWyA+uIZbHpnOZlMJ0Gp4gQJBAK38
    66JV5y1Q1r2tHc6UHzQ1tMH7wDIjVQSm6FbSTXxZxAt29Rx8gD0dQvi1ZAg0bV7F
    fRtwnqPlqZaoJQcTUMECQQD1Dh+Mu3OMb5AHnrtbk9l1qjM3U81QBKdyF0RY+djo
    b3cR9I7+hurpqhJmQ7yuvAWe2xWc+YNTQ48FDJTogXlB
    -----END RSA PRIVATE KEY-----
    "
      ["extracerts"]=>
      array(0) {
      }
    }
    */
    function cfcasign_pkcs12($plainText)
    {
        $p12cert = array();
        //①讀取公匙文件內容:二進制數據
        $file = 'ceshi/test.pfx';
        //二進制文件
        $fd = fopen($file, 'r');
        //只讀模式打開文件
        $p12buf = fread($fd, filesize($file));
        //讀取文件
        fclose($fd);
        /**
         * bool openssl_pkcs12_read ( string $pkcs12 , array &$certs , string $pass  )
         * 把以公匙加密標準證書存放區($pkcs12)轉為數組存儲($certs)
         * $pass:解開公匙加密標準證書存放區加密的密碼
         */
        //②轉為數組
        openssl_pkcs12_read($p12buf, $p12cert, 'cfca1234');
        $pkeyid = $p12cert["pkey"];
        $binary_signature = "";
        /**
         * bool openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, int $signature_alg = OPENSSL_ALGO_SHA1 ] )
         * 生成簽名
         * $data:特殊數據
         * $signature:如果成功,生成的簽名(二進制數)
         * $priv_key_id:用于加密sha散列法生成的數據
         * 注意:$data沒被加密過
         */
        openssl_sign($plainText, $binary_signature, $pkeyid, OPENSSL_ALGO_SHA1);
        return bin2hex($binary_signature);
        //將二進制數據轉換成十六進制表示
    }
    

    示例9: createHash

     /**
      * {@inheritdoc}
      */
     public function createHash($payload, $key)
     {
         $this->validateKey($key);
         $signature = '';
         openssl_sign($payload, $signature, $key, $this->getAlgorithm());
         return $signature;
     }
    

    示例10: sign

    /**
     * 簽名
     *
     * @param String $params_str
     */
    function sign(&$params, $cert_path, $cert_pwd)
    {
        //global $log;
        $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
        $log->LogInfo('=====簽名報文開始======');
        if (isset($params['signature'])) {
            unset($params['signature']);
        }
        // 轉換成key=val&串
        $params_str = createLinkString($params, true, false);
        $log->LogInfo("簽名key=val&...串 >" . $params_str);
        $params_sha1x16 = sha1($params_str, FALSE);
        $log->LogInfo("摘要sha1x16 >" . $params_sha1x16);
        $private_key = getPrivateKey($cert_path, $cert_pwd);
        // 簽名
        $sign_falg = openssl_sign($params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1);
        if ($sign_falg) {
            $signature_base64 = base64_encode($signature);
            $log->LogInfo("簽名串為 >" . $signature_base64);
            $params['signature'] = $signature_base64;
        } else {
            $log->LogInfo(">>>>>簽名失敗<<<<<<<");
        }
        $log->LogInfo('=====簽名報文結束======');
    }
    

    示例11: generateRSASignature

     private function generateRSASignature($input, $key, $algo)
     {
         if (!openssl_sign($input, $signature, $key, $algo)) {
             throw new \Exception("Unable to sign data.");
         }
         return $signature;
     }
    

    示例12: testSign

     public function testSign()
     {
         $unencryptedValue = 'foobar';
         openssl_sign($unencryptedValue, $encryptedValue, $this->key, OPENSSL_ALGO_SHA384);
         $signature = $this->algorithm->sign($unencryptedValue, $this->key);
         $this->assertSame($encryptedValue, $signature);
     }
    

    示例13: signData

     /**
      * Sign some data with a private key.
      *
      * @param  string      $data
      * @param  string      $privateKey
      * @param  string|null $passphrase
      * @return string
      */
     protected function signData($data, $privateKey, $passphrase = null)
     {
         $privateKey = openssl_pkey_get_private($privateKey, $passphrase);
         openssl_sign($data, $signature, $privateKey);
         openssl_free_key($privateKey);
         return $signature;
     }
    

    示例14: __construct

     public function __construct()
     {
         $strCoreKey = "";
         $strPackageKey = "";
         //==================================================================
         $objPackages = $this->db->query("SELECT * FROM __repo_packages WHERE category");
         if ($objPackages) {
             while ($row = $objPackages->fetchAssoc()) {
                 if (intval($row['category']) == 8) {
                     $privateKey = $strCoreKey;
                 } else {
                     $privateKey = $strPackageKey;
                 }
                 if ($row['filehash'] != "") {
                     $strHash = $row['filehash'];
                     // fetch private key from file and ready it
                     $strKey = "file://" . $privateKey;
                     $pkeyid = openssl_pkey_get_private($strKey);
                     // compute signature
                     openssl_sign($strHash, $signature, $pkeyid, "sha1WithRSAEncryption");
                     // free the key from memory
                     openssl_free_key($pkeyid);
                     $signature = base64_encode($signature);
                     echo "UPDATE eqdkp20_repo_packages SET signature = '" . $signature . "' WHERE id=" . $row['id'] . "; ";
                 }
             }
         }
     }
    

    示例15: getSignedURL

     function getSignedURL($resource, $timeout)
     {
         //This comes from key pair you generated for cloudfront
         $keyPairId = $this->config->item('cloudfront_keyPairId');
         $key = $this->config->item('cloudfront_key');
         //IMPORTANT: Keep private and not in a web-accessible location
         //Set privateKey location based on web url (dev or production)
         $privateKey = $this->config->item('cloudfront_keyLocation') . $key;
         $expires = time() + $timeout;
         //Time out in seconds
         $json = '{"Statement":[{"Resource":"' . $resource . '","Condition":{"DateLessThan":{"AWS:EpochTime":' . $expires . '}}}]}';
         //Read Cloudfront Private Key Pair
         $fp = fopen($privateKey, "r");
         $priv_key = fread($fp, 8192);
         fclose($fp);
         //Create the private key
         $key = openssl_get_privatekey($priv_key);
         if (!$key) {
             echo "<p>Failed to load private key!</p>";
             return;
         }
         //Sign the policy with the private key
         if (!openssl_sign($json, $signed_policy, $key, OPENSSL_ALGO_SHA1)) {
             echo '<p>Failed to sign policy: ' . openssl_error_string() . '</p>';
             return;
         }
         //Create url safe signed policy
         $base64_signed_policy = base64_encode($signed_policy);
         $signature = str_replace(array('+', '=', '/'), array('-', '_', '~'), $base64_signed_policy);
         //Construct the URL
         $url = $resource . '?Expires=' . $expires . '&Signature=' . $signature . '&Key-Pair-Id=' . $keyPairId;
         return $url;
     }


    請登錄后查看

    CRMEB-慕白寒窗雪 最后編輯于2023-03-08 10:36:51

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

    {{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

    作者 管理員 企業

    {{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
    {{item.is_suggest == 1? '取消推薦': '推薦'}}
    沙發 板凳 地板 {{item.floor}}#
    {{item.user_info.title || '暫無簡介'}}
    附件

    {{itemf.name}}

    {{item.created_at}}  {{item.ip_address}}
    打賞
    已打賞¥{{item.reward_price}}
    {{item.like_count}}
    {{item.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

    {{itemc.created_at}}
    打賞
    已打賞¥{{itemc.reward_price}}
    {{itemc.like_count}}
    {{itemc.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復
    查看更多
    打賞
    已打賞¥{{reward_price}}
    3557
    {{like_count}}
    {{collect_count}}
    添加回復 ({{post_count}})

    相關推薦

    快速安全登錄

    使用微信掃碼登錄
    {{item.label}} 加精
    {{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態 精選推薦 首頁頭條 首頁動態 首頁推薦
    取 消 確 定
    回復
    回復
    問題:
    問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
    答案:
    提交
    bug 需求 取 消 確 定
    打賞金額
    當前余額:¥{{rewardUserInfo.reward_price}}
    {{item.price}}元
    請輸入 0.1-{{reward_max_price}} 范圍內的數值
    打賞成功
    ¥{{price}}
    完成 確認打賞

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

    CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
    返回頂部 返回頂部
    CRMEB客服