<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.mcrypt.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'function.mcrypt-generic.php',
    1 => 'mcrypt_generic',
    2 => '加密数据',
  ),
  'up' => 
  array (
    0 => 'ref.mcrypt.php',
    1 => 'Mcrypt 函数',
  ),
  'prev' => 
  array (
    0 => 'function.mcrypt-encrypt.php',
    1 => 'mcrypt_encrypt',
  ),
  'next' => 
  array (
    0 => 'function.mcrypt-generic-deinit.php',
    1 => 'mcrypt_generic_deinit',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/mcrypt/functions/mcrypt-generic.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<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">警告</strong><p class="simpara">本函数已自 PHP 7.1.0 起<em>废弃</em>并将自
PHP 7.2.0 起<em>移除</em>。强烈建议不要使用本函数。</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"><a href="language.types.resource.php" class="type resource">resource</a></span> <code class="parameter">$td</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$data</code></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="simpara">
    本函数用来加密数据。
    传入数据长度必须是 n * 分组大小，否则需要后补 &quot;<code class="literal">\0</code>&quot;。
    本函数返回加密后的数据。
    注意，根据数据补齐不同，
    返回的数据可能比输入的数据长度有所增加。
  </p>
  <p class="simpara">
    如果你需要把加密后的数据保存到数据库，
    请确保保存 mcrypt_generic 返回的完整的字符串，
    否则将无法正确解密。
    如果原始数据有 10 个字符，分组大小为 8
    （使用 <span class="function"><a href="function.mcrypt-enc-get-block-size.php" class="function">mcrypt_enc_get_block_size()</a></span> 获取分组大小），
    则数据库中至少需要 16 个字符来保存数据。
    请注意 <span class="function"><a href="function.mdecrypt-generic.php" class="function">mdecrypt_generic()</a></span> 函数返回的数据也会是 16 个字符。
    使用 rtrim($str, &quot;\0&quot;) 移除字符串末尾的 0 。
  </p>
  <p class="simpara">
    如果你在例如 MySQL 这样的数据库中存储数据，
    请注意 varchar 类型的字段会在插入数据时自动移除字符串末尾的“空格”。
    由于加密后的数据可能是以空格（ASCII 32）结尾，
    这种特性会导致数据损坏。
    请使用 tinyblob/tinytext（或 larger）字段来存储加密数据。
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.mcrypt-generic-parameters">
  <h3 class="title">参数</h3>
  <dl>
   
    <dt><code class="parameter">td</code></dt>
    <dd>
     <span class="simpara">
      加密描述符。
     </span>
     <span class="simpara">
       在调用本函数之前，
       请使用 <span class="function"><a href="function.mcrypt-generic-init.php" class="function">mcrypt_generic_init()</a></span> 函数初始化加密句柄。
       在加密完成之后，
       需要调用 <span class="function"><a href="function.mcrypt-generic-deinit.php" class="function">mcrypt_generic_deinit()</a></span> 函数进行必要的清理工作。
       请参见 <span class="function"><a href="function.mcrypt-module-open.php" class="function">mcrypt_module_open()</a></span> 。
     </span>
    </dd>
   
   
    <dt><code class="parameter">data</code></dt>
    <dd>
     <span class="simpara">
      要加密的数据。
     </span>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.mcrypt-generic-returnvalues">
  <h3 class="title">返回值</h3>
  <p class="simpara">
   返回加密后的数据。
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.mcrypt-generic-seealso">
  <h3 class="title">参见</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.mdecrypt-generic.php" class="function" rel="rdfs-seeAlso">mdecrypt_generic()</a> - 解密数据</span></li>
   <li><span class="function"><a href="function.mcrypt-generic-init.php" class="function" rel="rdfs-seeAlso">mcrypt_generic_init()</a> - 初始化加密所需的缓冲区</span></li>
   <li><span class="function"><a href="function.mcrypt-generic-deinit.php" class="function" rel="rdfs-seeAlso">mcrypt_generic_deinit()</a> - 对加密模块进行清理工作</span></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>