1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/mcrypt/functions/mcrypt-generic.xml
2026-01-19 03:24:33 +00:00

111 lines
5.0 KiB
XML
Raw Permalink 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.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e849a6c4225bd992474793ec6983df7898cae0be Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.mcrypt-generic">
<refnamediv>
<refname>mcrypt_generic</refname>
<refpurpose>Функция шифрует данные</refpurpose>
</refnamediv>
<refsynopsisdiv>
&warn.deprecated.function-7-1-0.removed-7-2-0;
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>mcrypt_generic</methodname>
<methodparam><type>resource</type><parameter>td</parameter></methodparam>
<methodparam><type>string</type><parameter>data</parameter></methodparam>
</methodsynopsis>
<simpara>
Эта функция шифрует данные. Данные будут дополнены символами "<literal>\0</literal>"
для того, чтобы их размер стал кратен размеру блока. Эта функция возвращает
зашифрованные данные. Обратите внимание, что длина возвращаемой строки
может быть больше исходной из-за дополнения.
</simpara>
<simpara>
Если вы хотите хранить шифрованные данные в базе данных, убедитесь, что
вы сохраняете строку полностью, как она была возвращена этой функцией, иначе
вы потом не сможете её расшифровать. Если ваша оригинальная строка была 10
символов длиной, а размер блока равен 8 (используйте
<function>mcrypt_enc_get_block_size</function> для определения размера блока),
то размер столбца базы данных должен быть как минимум 16 символов.
Обратите внимание, что строка возвращаемая
<function>mdecrypt_generic</function> также будет размером 16 символов. В таком
случае просто используйте rtrim($str, "\0") для удаления добавленных символов.
</simpara>
<simpara>
К примеру, если вы сохраните данные в MySQL, помните, что при вставке значений в
поля типа VARCHAR, у них автоматически отбрасываются пробелы из конца строки.
Если зашифрованные данные кончаются на пробел (ASCII 32), то они будут
повреждены при такой вставке. Лучше используйте для хранения поля
типа TINYBLOB/TINYTEX или больше.
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>td</parameter></term>
<listitem>
<simpara>
Дескриптор шифрования.
</simpara>
<simpara>
Обработчик шифрования всегда должен инициализироваться с помощью
<function>mcrypt_generic_init</function> с ключом и инициализирующим вектором
перед вызовом функции. Как только шифрование завершено, необходимо освободить
буферы шифрования путём вызова функции <function>mcrypt_generic_deinit</function>.
Смотрите пример в описании функции <function>mcrypt_module_open</function>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<simpara>
Данные для шифрования.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
Возвращает зашифрованные данные.
</simpara>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>mdecrypt_generic</function></member>
<member><function>mcrypt_generic_init</function></member>
<member><function>mcrypt_generic_deinit</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->