函数名:openssl_pkcs7_sign()
适用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7
用法:openssl_pkcs7_sign()函数用于创建一个PKCS#7数字签名。
语法:bool openssl_pkcs7_sign(string $input_filename, string $output_filename, mixed $certificate, mixed $private_key, array $headers [, int $flags = PKCS7_DETACHED [, string $untrusted_certificates_filename]] )
参数:
返回值:成功时返回true,失败时返回false。
示例:
$input_file = 'data.txt';
$output_file = 'signed_data.txt';
$certificate = 'certificate.pem';
$private_key = 'private_key.pem';
$headers = array(
'Content-Type' => 'text/plain',
'Content-Disposition' => 'attachment; filename="data.txt"'
);
if (openssl_pkcs7_sign($input_file, $output_file, $certificate, $private_key, $headers)) {
echo '文件签名成功!';
} else {
echo '文件签名失败!';
}
以上示例中,我们使用openssl_pkcs7_sign()函数对输入文件data.txt进行签名,并将签名后的文件保存为signed_data.txt。签名者的证书和私钥分别为certificate.pem和private_key.pem。我们还指定了一些签名的头部信息,包括Content-Type和Content-Disposition。如果签名成功,输出"文件签名成功!";否则输出"文件签名失败!"。