查詢

openssl_public_encrypt()函式—用法及示例

「 使用公鑰加密資料 」


函式名稱:openssl_public_encrypt()

函式描述:該函式使用公鑰加密資料。

適用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7

語法:openssl_public_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] ) : bool

引數:

  • $data:要加密的資料,必須是字串型別。
  • &$crypted:加密後的資料,將被儲存在該變數中。
  • $key:加密所使用的公鑰,可以是由openssl_pkey_get_public()函式返回的公鑰資源或者是PEM格式的公鑰字串。
  • $padding:加密時使用的填充方式,預設為OPENSSL_PKCS1_PADDING,可選引數有OPENSSL_NO_PADDING、OPENSSL_PKCS1_PADDING、OPENSSL_SSLV23_PADDING。

返回值:成功時返回true,失敗時返回false。

示例:

// 載入公鑰
$publicKey = openssl_pkey_get_public(file_get_contents('public.pem'));

// 要加密的資料
$data = "Hello, World!";

// 加密資料
if (openssl_public_encrypt($data, $crypted, $publicKey)) {
    echo "加密成功!\n";
    echo "加密後的資料:\n" . base64_encode($crypted);
} else {
    echo "加密失敗!";
}

// 釋放公鑰資源
openssl_free_key($publicKey);

注意事項:

  1. 在加密前,需要先載入公鑰資源,可以使用openssl_pkey_get_public()函式獲取公鑰資源。
  2. 加密後的資料通常是不可讀的二進位制資料,可以使用base64_encode()函式將其轉換為可讀的字串。
  3. 加密成功後,需要釋放公鑰資源,可以使用openssl_free_key()函式釋放公鑰資源。
  4. 如果加密失敗,可以使用openssl_error_string()函式獲取錯誤資訊。
補充糾錯
熱門PHP函式
分享連結