函数名称: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]])
参数:
返回值:成功时返回解密后的数据,失败时返回 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 '解密失败!';
}
注意事项: