<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mcrypt.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'mcrypt.ciphers.php',
    1 => 'Mcrypt 密码',
    2 => 'Mcrypt 密码',
  ),
  'up' => 
  array (
    0 => 'book.mcrypt.php',
    1 => 'Mcrypt',
  ),
  'prev' => 
  array (
    0 => 'mcrypt.constants.php',
    1 => '预定义常量',
  ),
  'next' => 
  array (
    0 => 'ref.mcrypt.php',
    1 => 'Mcrypt 函数',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/mcrypt/ciphers.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mcrypt.ciphers" class="appendix">
 <h1 class="title">Mcrypt 密码</h1>

 <p class="para">
  下表是 mcrypt 扩展所支持的密码。
  所支持的密码的完整列表请参见 <var class="filename">mcrypt.h</var> 文件。
  在 PHP 中使用 mcrypt-2.2.x 的一个通用规则是你可以使用
  MCRYPT_ciphername 来访问密码。
  在 libmcrypt-2.4.x 和 libmcrypt-2.5.x 的 API 中，这些常量依然可用，
  但是你也可以把密码模式以字符串的形式传入 <span class="function"><a href="function.mcrypt-module-open.php" class="function">mcrypt_module_open()</a></span> 函数
  来进行访问。
  <ul class="itemizedlist">
   <li class="listitem"><span class="simpara">MCRYPT_3DES</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_ARCFOUR_IV ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_ARCFOUR ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_BLOWFISH</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_CAST_128</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_CAST_256</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_CRYPT</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_DES</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_DES_COMPAT ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_ENIGMA ( 仅 libmcrypt &gt; 2.4.x 可用，MCRYPT_CRYPT 的别名)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_GOST</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_IDEA (非免费算法)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_LOKI97 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_MARS ( 仅 libmcrypt &gt; 2.4.x 可用，非免费算法)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_PANAMA ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RIJNDAEL_128 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RIJNDAEL_192 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RIJNDAEL_256 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC2</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC4 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6_128 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6_192 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6_256 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SAFER64</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SAFER128</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SAFERPLUS ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT_128 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT_192 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT_256 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SKIPJACK ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TEAN ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_THREEWAY</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TRIPLEDES ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH ( mcrypt  2.x 之前的版本，或者 2.4.x 之后版本可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH128 (TWOFISHxxx 在新的 2.x 版本可用，但在 2.4.x 版本不可用)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH192</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH256</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_WAKE ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_XTEA ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
  </ul>
 </p>
 <p class="simpara">
  如果使用 <strong><code>CFB</code></strong> 和 <strong><code>OFB</code></strong> 模式，
  必须提供初始向量（IV），
  如果使用 <strong><code>CBC</code></strong> 模式，
  可以提供一个初始向量。
  初始向量必须是唯一的，并且在加密和解密过程中要保持一致。
  你可以将初始向量和加密后数据一起存储，
  其存储位置可以由一个函数的输出来指定，
  例如文件名的 MD5 散列值，
  这样你就可以把初始向量和加密后的数据一起传输
  （关于本话题的更多信息，请参见 Applied Cryptography by Schneier (ISBN 0-471-11709-9) 9.3 一节）。
 </p>
</div>
<?php manual_footer($setup); ?>