English | 简体中文 | 繁體中文
查询

openssl_open()函数—用法及示例

「 使用非对称加密算法打开并解密由openssl_seal()函数加密的数据 」


函数名称:openssl_open()

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

函数描述:openssl_open()函数用于使用非对称加密算法打开并解密由openssl_seal()函数加密的数据。

用法: openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id [, string $method = "RC4" [, string &$iv = "" ]] ) : bool

参数:

  1. sealed_data:已加密的数据,由openssl_seal()函数生成。
  2. open_data:解密后的数据将存储在此变量中。
  3. env_key:用于解密数据的环境密钥。
  4. priv_key_id:私钥标识符,可以是一个字符串表示的私钥文件的路径,或者是之前通过openssl_get_privatekey()函数获取的私钥资源句柄。
  5. method(可选):解密算法的名称。默认为"RC4",也可以使用其他可用的算法,如"AES-128-CBC"。
  6. iv(可选):初始化向量(IV),用于加密算法。默认为空字符串。

返回值: 如果解密成功,则返回true,否则返回false。

示例:

<?php
// 加密数据
$plaintext = "Hello, World!";
$keys = openssl_pkey_new();
openssl_seal($plaintext, $sealed_data, $env_keys, array($keys));

// 解密数据
$private_key = openssl_pkey_get_private($keys);
if (openssl_open($sealed_data, $open_data, $env_keys[0], $private_key)) {
    echo "解密后的数据:{$open_data}";
} else {
    echo "解密失败";
}
?>

以上示例中,我们首先生成了一对公钥和私钥,然后使用openssl_seal()函数对明文数据进行加密。接着,我们使用openssl_open()函数对加密后的数据进行解密,并将解密后的数据存储在$open_data变量中。最后,我们根据解密的结果输出相应的信息。

补充纠错
上一个函数: openssl_pbkdf2()函数
下一个函数: openssl_get_publickey()函数
热门PHP函数
分享链接