<?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 => 'ru',
  ),
  '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' => 'ru',
    '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">
   Эта функция шифрует данные. Данные будут дополнены символами &quot;<code class="literal">\0</code>&quot;
   для того, чтобы их размер стал кратен размеру блока. Эта функция возвращает
   зашифрованные данные. Обратите внимание, что длина возвращаемой строки
   может быть больше исходной из-за дополнения.
  </p>
  <p class="simpara">
   Если вы хотите хранить шифрованные данные в базе данных, убедитесь, что
   вы сохраняете строку полностью, как она была возвращена этой функцией, иначе
   вы потом не сможете её расшифровать. Если ваша оригинальная строка была 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;) для удаления добавленных символов.
  </p>
  <p class="simpara">
   К примеру, если вы сохраните данные в MySQL, помните, что при вставке значений в
   поля типа VARCHAR, у них автоматически отбрасываются пробелы из конца строки.
   Если зашифрованные данные кончаются на пробел (ASCII 32), то они будут
   повреждены при такой вставке. Лучше используйте для хранения поля
   типа TINYBLOB/TINYTEX или больше.
  </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); ?>