牛牛在线工具

openssl_cms_decrypt()

收录 8868 个 PHP 函数,含用途说明与用法示例。

openssl_cms_decrypt()

解密由 OpenSSL 加密的 CMS (Cryptographic Message Syntax) 格式的数据

函数名称:openssl_cms_decrypt() 适用版本:PHP 5 >= 5.3.0, PHP 7, PHP 8 函数描述:openssl_cms_decrypt() 函数用于解密由 OpenSSL 加密的 CMS (Cryptographic Message Syntax) 格式的数据。 语法:openssl_cms_decrypt(string $input, string $output, mixed $certificate, mixed $private_key [, array $headers [, int $flags = 0]]) 参数: $input:要解密的输入数据,可以是文件路径或者是一个字符串。 $output:解密后的输出数据,可以是文件路径或者是一个变量名。 $certificate:用于解密的证书,可以是证书文件路径、证书字符串或者是一个 OpenSSL X.509 证书资源。 $private_key:用于解密的私钥,可以是私钥文件路径、私钥字符串或者是一个 OpenSSL 密钥资源。 $headers:可选参数,用于指定要解密的 CMS 格式的头部信息。 $flags:可选参数,用于指定解密的标志。默认为0。 返回值:成功时返回解密后的数据,失败时返回 FALSE。 示例: // 解密一个加密的 CMS 格式数据并将结果保存到文件中 $inputFile = 'encrypted.cms'; $outputFile = 'decrypted.txt'; $certificateFile = 'certificate.pem'; $privateKeyFile = 'private_key.pem'; $inputData = file_get_contents($inputFile); $certificate = openssl_x509_read(file_get_contents($certificateFile)); $privateKey = openssl_pkey_get_private(file_get_contents($privateKeyFile)); $decryptedData = openssl_cms_decrypt($inputData, $outputFile, $certificate, $privateKey); if ($decryptedData !== false) { echo '解密成功!解密后的数据已保存到 ' . $outputFile; } else { echo '解密失败!'; } // 解密一个加密的 CMS 格式数据并将结果保存到变量中 $inputData = 'encrypted.cms'; $certificateString = '-----BEGIN CERTIFICATE----- MIIC... -----END CERTIFICATE-----'; $privateKeyString = '-----BEGIN PRIVATE KEY----- MIIE... -----END PRIVATE KEY-----'; $certificate = openssl_x509_read($certificateString); $privateKey = openssl_pkey_get_private($privateKeyString); $decryptedData = openssl_cms_decrypt($inputData, $outputData, $certificate, $privateKey); if ($decryptedData !== false) { echo '解密成功!解密后的数据:' . $outputData; } else { echo '解密失败!'; } 注意事项: 在使用 openssl_cms_decrypt() 函数之前,需要确保 OpenSSL 扩展已经安装并启用。 传递给函数的证书和私钥参数可以是文件路径、字符串或者是 OpenSSL 的证书或密钥资源。 解密后的数据可以保存到文件中或者保存到变量中,具体取决于输出参数的类型。 错误处理:如果解密失败,函数会返回 FALSE,可以使用 openssl_error_string() 函数获取错误信息。