更安全的加密方式

时间:2014-06-02 21:57:38

标签: php curl encryption paypal

my last question相关,我有一个新的。

通过https发送加密数据的更安全的方法是什么。

  1. 在openssl_pkcs7_encrypt中使用signAndEncrypt函数并通过表单元素发送返回数组...

    $encryptedData = "-----BEGIN PKCS7-----" . str_replace("\n", "", <br/>   $encryptedDataReturn['encrypted_data']) ."-----END PKCS7-----";
    
        $encryptedRequest=<<<PPHTML
      <html>
        <header>
        </header>
    
        <body onload="document.getElementById('paypal_form').submit();">
          <br/><br/><br/><br/>
          <center>
            <h2>Please wait, your order is being processed and you
                will be redirected to the paypal website.
            </h2>
          </center>
          <form id="paypal_form" method="POST" action="{$this->gatewayUrl}">
            <input type="hidden" name="cmd" value="_s-xclick">
            <input type="hidden" name="encrypted" value="$encryptedData">
          </form>
        </body>
      </html>
    

    PPHTML;

  2. 或像这样使用curl

    2

    $curlOptions = array (
                CURLOPT_URL => Config::MERCHANT_SANDBOX_SIGNATURE_ENDPOINT,
                CURLOPT_VERBOSE => 1,
                CURLOPT_SSL_VERIFYPEER => true,
                CURLOPT_SSL_VERIFYHOST => 2,
                CURLOPT_CAINFO => $this->publicCertificate,
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_POST => 1,
                CURLOPT_HEADER => true,
                CURLOPT_POSTFIELDS => http_build_query($data)
        );
    
    
        $ch = curl_init();
        curl_setopt_array($ch,$curlOptions);
    
        //Sending our request - $response will hold the API response
        $response = curl_exec($ch);
    

    我正试图找到最安全的方式将数据发送到paypal api。 首先,我混合了两个函数,并将加密的nvp添加到CURLOPT_POSTFIELDS。但这给了我一些来自paypal的错误。所以我做了双重加密。当我离开postfields未加密时,paypal api给了我success

    我的问题:1。是否足够安全,将curl与公共证书一起使用?
    2。是否可以对pkcs7使用curl加密(或类似加密)?
    3。假设在通过curl / https向paypal发送数据之前,不能加密postfields,我是否正确,因为当我这样做时,paypal会给我失败的回复?

    请帮忙。
    问候ninchen

1 个答案:

答案 0 :(得分:1)

当谈到加密&amp;安全性,你的第一个答案应该是做任何标准的事情。它的标准是有原因的,可以说是合理安全的。如果发现漏洞,您需要更新,但其他人也会如此。尝试一个聪明的伎俩,更安全&#34;通常意味着你最终得到的东西不那么重要。

有关详细讨论,请参阅this answer