查询

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函数
分享链接