首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_sign — Sign an S/MIME message

描述

代码语言:javascript
复制
bool openssl_pkcs7_sign ( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts ]] )

openssl_pkcs7_sign()获取名为文件的内容,infilename并使用由signcertprivkey参数指定的证书及其匹配的私钥对它们进行签名。

参数

infilename

您打算数字签名的输入文件。

outfilename

数字签名将被写入的文件。

signcert

用于数字签名infilename的X.509证书。请参阅密钥/证书参数以获取有效值列表。

privkey

privkey是signcert对应的私钥。请参阅公钥/私钥参数以获取有效值列表。

headers

headers 是一个标头数组,它在签名后会被添加到数据中(有关此参数格式的更多信息,请参阅openssl_pkcs7_encrypt())。

flags

flags可以用来改变输出 - 参见PKCS7常量

extracerts

extracerts 指定包含一系列额外证书的文件的名称,这些证书要包含在签名中,例如可用于帮助收件人验证您使用的证书。

返回值

成功时返回TRUE或失败时返回FALSE

例子

示例#1 openssl_pkcs7_sign()示例

代码语言:javascript
复制
<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "file://mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From: HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

← openssl_pkcs7_encrypt

openssl_pkcs7_verify →

扫码关注腾讯云开发者

领取腾讯云代金券