首页
学习
活动
专区
工具
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 →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com