uTools-Manuals/docs/php/openssl_pkcs7_sign.html
2019-04-28 19:00:34 +08:00

156 lines
8.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>对一个 S/MIME 消息进行签名</title>
</head>
<body class="docs"><div id="layout">
<div id="layout-content"><div id="function.openssl-pkcs7-sign" class="refentry">
<div class="refnamediv">
<h1 class="refname">openssl_pkcs7_sign</h1>
<p class="verinfo">(PHP 4 &gt;= 4.0.6, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">openssl_pkcs7_sign</span> &mdash; <span class="dc-title">对一个 S/MIME 消息进行签名</span></p>
</div>
<div class="refsect1 description" id="refsect1-function.openssl-pkcs7-sign-description">
<h3 class="title">说明</h3>
<div class="methodsynopsis dc-description">
<span class="methodname"><strong>openssl_pkcs7_sign</strong></span>
( <span class="methodparam"><span class="type">string</span> <code class="parameter">$infilename</code></span>
, <span class="methodparam"><span class="type">string</span> <code class="parameter">$outfilename</code></span>
, <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$signcert</code></span>
, <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$privkey</code></span>
, <span class="methodparam"><span class="type">array</span> <code class="parameter">$headers</code></span>
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$flags</code><span class="initializer"> = PKCS7_DETACHED</span></span>
[, <span class="methodparam"><span class="type">string</span> <code class="parameter">$extracerts</code></span>
]] ) : <span class="type">bool</span></div>
<p class="para rdfs-comment">
<span class="function"><strong>openssl_pkcs7_sign()</strong></span>获取名为<code class="parameter">infilename</code>的文件内容,并使用由<code class="parameter">signcert</code><code class="parameter">privkey</code>指定的证书和与之匹配的私钥对其进行加密
</p>
</div>
<div class="refsect1 parameters" id="refsect1-function.openssl-pkcs7-sign-parameters">
<h3 class="title">参数</h3>
<p class="para">
<dl>
<dt>
<code class="parameter">infilename</code></dt>
<dd>
<p class="para">
你打算用来进行数字签名的输入文件。
</p>
</dd>
<dt>
<code class="parameter">outfilename</code></dt>
<dd>
<p class="para">
将写入数字签名的文件。
</p>
</dd>
<dt>
<code class="parameter">signcert</code></dt>
<dd>
<p class="para">
用来对输入文件进行数字签名的 X.509 证书,参见 <a href="openssl.certparams.html" class="link">密钥/证书参数</a>获取可用列表。
</p>
</dd>
<dt>
<code class="parameter">privkey</code></dt>
<dd>
<p class="para">
<code class="parameter">privkey</code>是对应signcert证书的私钥。
参见 <a href="openssl.certparams.html" class="link">公/私钥参数</a>获取可用列表。
</p>
</dd>
<dt>
<code class="parameter">headers</code></dt>
<dd>
<p class="para">
<code class="parameter">headers</code>是一个包含头信息的数组,在它被签名后,它将被预先对数据进行预处理 (参见
<span class="function"><a href="openssl_pkcs7_encrypt.html" class="function">openssl_pkcs7_encrypt()</a></span> 获取关于该参数格式的更多信息)。
</p>
</dd>
<dt>
<code class="parameter">flags</code></dt>
<dd>
<p class="para">
<code class="parameter">flags</code> 可以用来改变输出 - 参见 <a href="openssl.pkcs7.flags.html" class="link">PKCS7常量</a>
</p>
</dd>
<dt>
<code class="parameter">extracerts</code></dt>
<dd>
<p class="para">
<code class="parameter">extracerts</code> 指定一个文件的名称,其中包含一组含有签名的额外的证书,这些证书可以用来帮助接收者验证您使用的证书。
</p>
</dd>
</dl>
</p>
</div>
<div class="refsect1 returnvalues" id="refsect1-function.openssl-pkcs7-sign-returnvalues">
<h3 class="title">返回值</h3>
<p class="para">
成功时返回 <strong><code>TRUE</code></strong> 或者在失败时返回 <strong><code>FALSE</code></strong>
</p>
</div>
<div class="refsect1 examples" id="refsect1-function.openssl-pkcs7-sign-examples">
<h3 class="title">范例</h3>
<p class="para">
<div class="example" id="example-942">
<p><strong>Example #1 <span class="function"><strong>openssl_pkcs7_sign()</strong></span> 范例</strong></p>
<div class="example-contents">
<div class="phpcode"><pre><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//&nbsp;the&nbsp;message&nbsp;you&nbsp;want&nbsp;to&nbsp;sign&nbsp;so&nbsp;that&nbsp;recipient&nbsp;can&nbsp;be&nbsp;sure&nbsp;it&nbsp;was&nbsp;you&nbsp;that<br />//&nbsp;sent&nbsp;it<br /></span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;&lt;&lt;&lt;EOD<br /></span><span style="color: #DD0000"><br />You&nbsp;have&nbsp;my&nbsp;authorization&nbsp;to&nbsp;spend&nbsp;$10,000&nbsp;on&nbsp;dinner&nbsp;expenses.<br /><br />The&nbsp;CEO<br /></span><span style="color: #007700">EOD;<br /></span><span style="color: #FF8000">//&nbsp;save&nbsp;message&nbsp;to&nbsp;file<br /></span><span style="color: #0000BB">$fp&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">"msg.txt"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"w"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//&nbsp;encrypt&nbsp;it<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">openssl_pkcs7_sign</span><span style="color: #007700">(</span><span style="color: #DD0000">"msg.txt"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"signed.txt"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"file://mycert.pem"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #DD0000">"file://mycert.pem"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"mypassphrase"</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #DD0000">"To"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"joes@example.com"</span><span style="color: #007700">,&nbsp;</span><span style="color: #FF8000">//&nbsp;keyed&nbsp;syntax<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"From:&nbsp;HQ&nbsp;&lt;ceo@example.com&gt;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #FF8000">//&nbsp;indexed&nbsp;syntax<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">"Subject"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Eyes&nbsp;only"</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;message&nbsp;signed&nbsp;-&nbsp;send&nbsp;it!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #0000BB">ini_get</span><span style="color: #007700">(</span><span style="color: #DD0000">"sendmail_path"</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">"&nbsp;&lt;&nbsp;signed.txt"</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</pre></div>
</div>
</div>
</p>
</div>
</div></div></div></body></html>