1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-29 18:42:07 +02:00
Files
archived-doc-fr/reference/mcrypt/reference.xml
Mehdi Achour 31a42bd808 fix little error
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@159362 c90b9560-bf6c-de11-be94-00142212c4b1
2004-05-22 04:18:12 +00:00

194 lines
9.6 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.8 $ -->
<!-- EN-Revision: 1.13 Maintainer: didou Status: ready -->
<reference id="ref.mcrypt">
<title>Chiffrage mcrypt</title>
<titleabbrev>mcrypt</titleabbrev>
<partintro>
<section id="mcrypt.intro">
&reftitle.intro;
<para>
Ces fonctions permettent d'accéder à la librairie
mcrypt, qui dispose d'une grande variété d'algorithmes
de chiffrage, tels que DES, TripleDES, Blowfish (par défaut), 3-WAY,
SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 et GOST en modes CBC,
OFB, CFB et ECB. De plus, elles acceptent aussi RC6 et IDEA qui sont
considérés comme "non-libres".
</para>
</section>
<section id="mcrypt.requirements">
&reftitle.required;
<para>
Ces fonctions utilisent <ulink url="&url.mcrypt;">mcrypt</ulink>.
Pour utiliser cette librairie, téléchargez
le fichier libmcrypt-x.x.tar.gz sur <ulink url="&url.mcrypt;">&url.mcrypt;</ulink>
et suivez les instructions d'installation fournies.
Les utilisateurs Windows trouverons toutes librairies nécessaires
sur <ulink url="&url.mcrypt.windows;">&url.mcrypt.windows;</ulink>.
</para>
<para>
Si vous compilez &php; avec la librairie <literal>libmcrypt 2.4.x</literal>, les algorithmes
suivants sont supportés : CAST, LOKI97, RIJNDAEL, SAFERPLUS,
SERPENT ainsi que les chiffrements suivants : ENIGMA (chiffrage), PANAMA,
RC4 et WAKE. Avec <literal>libmcrypt 2.4.x</literal> un autre mode de chiffrement
est disponible : nOFB.
</para>
</section>
&reference.mcrypt.configure;
&reference.mcrypt.ini;
<section id="mcrypt.resources">
&reftitle.resources;
&no.resource;
</section>
&reference.mcrypt.constants;
<section id="mcrypt.ciphers">
<title>Mcrypt ciphers</title>
<para>
Voici une liste non exhaustive des modes de chiffrement de l'extension
mcrypt. Pour disposer d'une liste complète des chiffrements supportés,
voyez les définitions dans le fichier <filename>mcrypt.h</filename>. La règle
générale est avec l'API mcrypt-2.2.x API est que vous pouvez accéder au
mode de chiffrement depuis &php; avec la constante MCRYPT_ciphername. Avec
la librairie libmcrypt-2.4.x et libmcrypt-2.5.x, ces constantes fonctionnent
toujours, mais il est possible de spécifier le nom du chiffrement dans une chaîne,
lors de l'appel à <function>mcrypt_module_open</function>.
<itemizedlist>
<listitem><simpara><constant>MCRYPT_3DES</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_ARCFOUR_IV</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_ARCFOUR</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_BLOWFISH</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_CAST_128</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_CAST_256</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_CRYPT</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_DES</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_DES_COMPAT</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_ENIGMA</constant> (libmcrypt > 2.4.x seulement, alias de <constant>MCRYPT_CRYPT</constant>)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_GOST</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_IDEA</constant> (non-free)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_LOKI97</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_MARS</constant> (libmcrypt > 2.4.x seulement, non-libre)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_PANAMA</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RIJNDAEL_128</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RIJNDAEL_192</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RIJNDAEL_256</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RC2</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_RC4</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RC6</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RC6_128</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RC6_192</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_RC6_256</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_SAFER64</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_SAFER128</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_SAFERPLUS</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_SERPENT</constant>(libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_SERPENT_128</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_SERPENT_192</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_SERPENT_256</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_SKIPJACK</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_TEAN</constant> (libmcrypt 2.2.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_THREEWAY</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_TRIPLEDES</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_TWOFISH</constant> (pour les vieilles versions mcrypt 2.x, ou mcrypt > 2.4.x )</simpara></listitem>
<listitem><simpara><constant>MCRYPT_TWOFISH128</constant> (les <constant>TWOFISH</constant>xxx sont disponibles dans les nouvelles versions 2.x, mais pas dans les versions 2.4.x)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_TWOFISH192</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_TWOFISH256</constant></simpara></listitem>
<listitem><simpara><constant>MCRYPT_WAKE</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
<listitem><simpara><constant>MCRYPT_XTEA</constant> (libmcrypt > 2.4.x seulement)</simpara></listitem>
</itemizedlist>
</para>
<para>
Vous devez (mode <constant>OFB</constant> et <constant>OFB</constant>)
ou pouvez (mode <constant>CBC</constant>) fournir un vecteur d'initialisation
(IV) pour ces modes de chiffrement. IV doit être unique, et avoir la même
valeur au chiffrement et au déchiffrement. Pour des données qui seront
enregistrées après chiffrement, vous pouvez prendre le résultat d'une
fonction telle que MD5, appliquée sur le nom du fichier. Sinon, vous
pouvez envoyer IV avec les données chiffrées, (reportez-vous au chapitre
9.3 de &book.applied.cryptography; de Schneier (ISBN 0-471-11709-9)
pour plus de détails sur le sujet).
</para>
</section>
<section id="mcrypt.examples">
&reftitle.examples;
<para>
Mcrypt permet de chiffrer et de déchiffrer, en utilisant les méthodes
mentionnées ci-dessus. Les 4 commandes importantes
<function>mcrypt_cfb</function>, <function>mcrypt_cbc</function>,
<function>mcrypt_ecb</function> et <function>mcrypt_ofb</function>)
peuvent toutes opérer en mode <constant>MCRYPT_ENCRYPT</constant> et <constant>MCRYPT_DECRYPT</constant>.
<example>
<title>Chiffre une valeur avec un TripleDES, en mode ECB. </title>
<programlisting role="php">
<![CDATA[
<?php
$key = "Cette clé est ultra-secrète";
$input = "Rencontrons-nous dans notre place secrète à 9 h 00.";
$encrypted_data = mcrypt_ecb(MCRYPT_TripleDES, $key, $input, MCRYPT_ENCRYPT);
?>
]]>
</programlisting>
</example>
Cet exemple va retourner les données cryptées dans la variable
$encrypted_data.
</para>
<para>
Si vous avez compilé &php; avec libmcrypt 2.4.x, ces fonctions sont toujours
disponibles, mais il est vivement conseillé d'utiliser les nouvelles
fonctions avancées.
<example>
<title>Encryption d'une valeur avec TripleDES sous 2.4.x en mode ECB</title>
<programlisting role="php">
<![CDATA[
<?php
$key = "Ceci est une vraie clé secrète";
$input = "Rendez-vous à 9 heures, dans notre planque.";
$td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $input);
mcrypt_generic_end($td);
?>
]]>
</programlisting>
</example>
Cet exemple va retourner les données cryptées dans la variable
<literal>$encrypted_data</literal>. Pour un exemple complet,
voyez <function>mcrypt_module_open</function>.
</para>
</section>
</partintro>
&reference.mcrypt.functions;
</reference>
<!-- 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:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->