1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 15:12:13 +01:00
Files
archived-doc-fr/reference/mcrypt/functions/mcrypt-generic.xml
2026-03-02 13:40:31 +01:00

117 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e849a6c4225bd992474793ec6983df7898cae0be Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.mcrypt-generic">
<refnamediv>
<refname>mcrypt_generic</refname>
<refpurpose>Chiffre les données</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>
<function>mcrypt_generic</function> chiffre les données
<parameter>data</parameter>. Les données sont complétées
par des "<literal>\0</literal>" pour obtenir une taille multiple de la taille
d'un bloc. Elle retourne les données chiffrées. À noter que la longueur
de la chaîne retournée peut être plus longue que celle
passée en argument, à cause du complément.
</simpara>
<simpara>
Pour enregistrer les données chiffrées dans une base de données
il faut s'assurer d'enregistrer la chaîne entière retournée par cette fonction,
sinon la chaîne ne sera pas déchiffrée correctement. Si la chaîne d'origine
comporte 10 caractères et que la taille d'un bloc est de 8 (utiliser
<function>mcrypt_enc_get_block_size</function> pour déterminer cette taille),
on aura besoin d'au moins 16 caractères dans le champ de la base de données.
À noter que la chaîne retournée par <function>mdecrypt_generic</function> aura
16 caractères de long... utiliser <literal>rtrim($str, "\0")</literal>
pour supprimer le complément.
</simpara>
<simpara>
Par exemple, si on enregistre les données dans une base de données MySQL,
il faut se souvenir que les champs de type VARCHAR suppriment automatiquement les
espaces en trop durant l'insertion. Comme les données chiffrées peuvent se
terminer avec un espace (ASCII 32), les données seront endommagées par cette
suppression. Stockez les données dans un champ de type TINYBLOB/TINYTEXT
(ou plus grand) pour que tout fonctionne normalement.
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>td</parameter></term>
<listitem>
<simpara>
La ressource de chiffrement.
</simpara>
<simpara>
Le gestionnaire de chiffrement <parameter>td</parameter> doit être
initialisé avec la fonction <function>mcrypt_generic_init</function>,
avec une clé et un VI, avant d'appeler cette fonction. Lorsque le chiffrement
est réalisé, il faut libérer les buffers en appelant la fonction
<function>mcrypt_generic_deinit</function>.
Voir <function>mcrypt_module_open</function> pour un exemple.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<simpara>
Les données à chiffrer.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
Retourne les données chiffrées.
</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
-->