查詢

openssl_private_encrypt()函式—用法及示例

「 使用給定的私鑰對資料進行加密 」


函式名稱:openssl_private_encrypt()

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

函式描述:openssl_private_encrypt() 函式使用給定的私鑰對資料進行加密。

用法: openssl_private_encrypt ( string $data , string &$encrypted , mixed $private_key [, int $padding = OPENSSL_PKCS1_PADDING ] ) : bool

引數:

  • $data: 要加密的資料。
  • &$encrypted: 加密後的資料將被儲存在此變數中。
  • $private_key: 私鑰,可以是 PEM 格式的字串,也可以是之前使用 openssl_pkey_get_private() 函式獲取的私鑰資源。
  • $padding: 可選引數,指定填充模式。預設為 OPENSSL_PKCS1_PADDING。

返回值:如果加密成功,則返回 true,否則返回 false。

示例:

// 定義私鑰
$privateKey = <<<EOD
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC2lLh1Y2y3sZ3yOq1s5X1e7h9eYp8ZnDvBhD4Vvz8W1aK1q7xL
eJ5LrB8FjxKzX8R4bGsti8bY4Jt8ZsJu8D9Ez7HlO5uB5VwT9l2BnJ5n0tWfXaG0
vJ1iUx5+H0KJm9s5hIqk2P2dWu4RwI+3KR4Wc9VC5Y3ejG3yFfA2p2kXbwIDAQAB
AoGAZV2m4lW1p2Zi4B8bXu8K0j9zIe3RfRv3mJzGKsH6Fl4Ld4qAGzR4eG4c7K1z
5g6eK7s6c8Bh9z0u3D5v6u7g8h0d4H6D7f2E3d6f7g8H0j2k5L4j9k8l7k6j5h4p
3o1j7h1j2k3l4k5j6h7g4f3d2s1a2s1d3f5g7h8j9k0l1
-----END RSA PRIVATE KEY-----
EOD;

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

// 加密資料
if (openssl_private_encrypt($data, $encrypted, $privateKey)) {
    echo '加密成功!<br>';
    echo '加密後的資料:' . base64_encode($encrypted);
} else {
    echo '加密失敗!';
}

注意事項:

  1. 請確保 OpenSSL 擴充套件已啟用。
  2. 私鑰必須是有效的 PEM 格式。
  3. 加密後的資料通常會以二進位制格式返回,可以使用 base64_encode() 函式將其轉換為可讀的字串。
  4. 如果加密失敗,可以使用 openssl_error_string() 函式獲取錯誤資訊。
補充糾錯
上一個函式: openssl_public_encrypt()函式
下一個函式: openssl_private_decrypt()函式
熱門PHP函式
分享連結