查询

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