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

116 lines
4.8 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>加密数据</title>
</head>
<body class="docs"><div id="layout">
<div id="layout-content"><div id="function.mcrypt-generic" class="refentry">
<div class="refnamediv">
<h1 class="refname">mcrypt_generic</h1>
<p class="verinfo">(PHP 4 &gt;= 4.0.2, PHP 5, PHP 7 &lt; 7.2.0, PECL mcrypt &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">mcrypt_generic</span> &mdash; <span class="dc-title">加密数据</span></p>
</div>
<div id="function.mcrypt-generic-refsynopsisdiv">
<div class="warning"><strong class="warning">Warning</strong><p class="simpara">This function has been
<em class="emphasis">DEPRECATED</em> as of PHP 7.1.0. Relying on this function
is highly discouraged.</p></div>
</div>
<div class="refsect1 description" id="refsect1-function.mcrypt-generic-description">
<h3 class="title">说明</h3>
<div class="methodsynopsis dc-description">
<span class="methodname"><strong>mcrypt_generic</strong></span>
( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$td</code></span>
, <span class="methodparam"><span class="type">string</span> <code class="parameter">$data</code></span>
) : <span class="type">string</span></div>
<p class="para rdfs-comment">
本函数用来加密数据。
传入数据长度必须是 n * 分组大小,否则需要后补 &quot;<em>\0</em>&quot;
本函数返回加密后的数据。
注意,根据数据补齐不同,
返回的数据可能比输入的数据长度有所增加。
</p>
<p class="para">
如果你需要把加密后的数据保存到数据库,
请确保保存 mcrypt_generic 返回的完整的字符串,
否则将无法正确解密。
如果原始数据有 10 个字符,分组大小为 8
(使用 <span class="function"><a href="mcrypt_enc_get_block_size.html" class="function">mcrypt_enc_get_block_size()</a></span> 获取分组大小),
则数据库中至少需要 16 个字符来保存数据。
请注意 <span class="function"><a href="mdecrypt_generic.html" class="function">mdecrypt_generic()</a></span> 函数返回的数据也会是 16 个字符。
使用 rtrim($str, &quot;\0&quot;) 移除字符串末尾的 0 。
</p>
<p class="para">
如果你在例如 MySQL 这样的数据库中存储数据,
请注意 varchar 类型的字段会在插入数据时自动移除字符串末尾的“空格”。
由于加密后的数据可能是以空格ASCII 32结尾
这种特性会导致数据损坏。
请使用 tinyblob/tinytext或 larger字段来存储加密数据。
</p>
</div>
<div class="refsect1 parameters" id="refsect1-function.mcrypt-generic-parameters">
<h3 class="title">参数</h3>
<p class="para">
<dl>
<dt>
<code class="parameter">td</code></dt>
<dd>
<p class="para">
加密描述符。
</p>
<p class="para">
在调用本函数之前,
请使用 <span class="function"><a href="mcrypt_generic_init.html" class="function">mcrypt_generic_init()</a></span> 函数初始化加密句柄。
在加密完成之后,
需要调用 <span class="function"><a href="mcrypt_generic_deinit.html" class="function">mcrypt_generic_deinit()</a></span> 函数进行必要的清理工作。
请参见 <span class="function"><a href="mcrypt_module_open.html" class="function">mcrypt_module_open()</a></span>
</p>
</dd>
<dt>
<code class="parameter">data</code></dt>
<dd>
<p class="para">
要加密的数据。
</p>
</dd>
</dl>
</p>
</div>
<div class="refsect1 returnvalues" id="refsect1-function.mcrypt-generic-returnvalues">
<h3 class="title">返回值</h3>
<p class="para">
返回加密后的数据。
</p>
</div>
<div class="refsect1 seealso" id="refsect1-function.mcrypt-generic-seealso">
<h3 class="title">参见</h3>
<p class="para">
<ul class="simplelist">
<li class="member"><span class="function"><a href="mdecrypt_generic.html" class="function" rel="rdfs-seeAlso">mdecrypt_generic()</a> - 解密数据</span></li>
<li class="member"><span class="function"><a href="mcrypt_generic_init.html" class="function" rel="rdfs-seeAlso">mcrypt_generic_init()</a> - 初始化加密所需的缓冲区</span></li>
<li class="member"><span class="function"><a href="mcrypt_generic_deinit.html" class="function" rel="rdfs-seeAlso">mcrypt_generic_deinit()</a> - 对加密模块进行清理工作</span></li>
</ul>
</p>
</div>
</div></div></div></body></html>