mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-26 18:02:17 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@167592 c90b9560-bf6c-de11-be94-00142212c4b1
203 lines
9.8 KiB
XML
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:
|
|
-->
|
|
|