Files
doc-fr/reference/mcrypt/reference.xml
Yannick Torres 982c292a1b synch with en
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@167592 c90b9560-bf6c-de11-be94-00142212c4b1
2004-08-29 21:47:36 +00:00

203 lines
9.8 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.12 $ -->
<!-- EN-Revision: 1.15 Maintainer: didou Status: ready -->
<!-- Reviewed: yes -->
<reference id="ref.mcrypt">
<title>chiffrement mcrypt</title>
<titleabbrev>mcrypt</titleabbrev>
<partintro>
<section id="mcrypt.intro">
&reftitle.intro;
<para>
Ces fonctions permettent d'accéder à la bibliothèque
mcrypt, qui dispose d'une grande variété d'algorithmes
de chiffrement, tels 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 bibliothèque, téléchargez
le fichier <filename>libmcrypt-x.x.tar.gz</filename> sur
<ulink url="&url.mcrypt;">&url.mcrypt;</ulink>
et suivez les instructions d'installation fournies.
Les utilisateurs Windows trouveront toutes les bibliothèques nécessaires
sur <ulink url="&url.mcrypt.windows;">&url.mcrypt.windows;</ulink>.
</para>
<simpara>
Depuis &php; 5.0.0, vous avez besoin de la version 2.5.6 ou suivant de la bibliothèque
libmcrypt.
</simpara>
<para>
Si vous compilez &php; avec la bibliothèque <literal>libmcrypt 2.4.x</literal>, les algorithmes
suivants sont supportés : CAST, LOKI97, RIJNDAEL, SAFERPLUS,
SERPENT ainsi que les chiffrements suivants : ENIGMA (chiffrement), 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 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 bibliothèque 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>Cryptage 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:
-->