Files
doc-fr/reference/mcrypt/reference.xml
T
Damien Seguy bca692e0cd keep up with en tree
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@134233 c90b9560-bf6c-de11-be94-00142212c4b1
2003-07-05 14:56:15 +00:00

187 lines
9.8 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.3 $ -->
<reference id="ref.mcrypt">
<title>Chiffrage mcrypt</title>
<titleabbrev>mcrypt</titleabbrev>
<partintro>
<section id="mcrypt.intro">
&reftitle.intro;
<para>
Ces fonctions permettent d'acc&eacute;der &agrave; la librairie
mcrypt, qui dispose d'une grande vari&eacute;t&eacute; d'algorithmes
de chiffrage, tels que DES, TripleDES, Blowfish (par d&eacute;faut), 3-WAY,
SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 et GOST en modes CBC,
OFB, CFB et ECB. De plus, elle accepte aussi RC6 et IDEA qui sont
consid&eacute;r&eacute;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&eacute;l&eacute;chargez
le fichier libmcrypt-x.x.tar.gz sur <ulink url="&url.mcrypt;">ce site</ulink>
et suivez les instructions d'installation fournies.
Les utilisateurs Windows trouverons toutes librairies n&eacute;cessaires
<ulink url="&url.mcrypt.windows;">ici</ulink>.
</para>
<para>
Si vous compilez PHP avec la librairie <literal>libmcrypt 2.4.x</literal>, les algorithmes
suivants sont support&eacute;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&egrave;te des chiffrements support&eacute;s,
voyez les d&eacute;finitions dans le fichier <filename>mcrypt.h</filename>. La r&egrave;gle
g&eacute;n&eacute;rale est avec l'API mcrypt-2.2.x API est que vous pouvez acc&eacute;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&eacute;cifier le nom du chiffrement dans une cha&icirc;ne,
lors de l'appel &agrave; <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 &ecirc;tre
unique, et avoir la m&ecirc;me valeur au chiffrement et au d&eacute;chiffrement.
Pour des donn&eacute;es qui seront enregistr&eacute;es apr&egrave;s chiffrement,
vous pouvez prendre le r&eacute;sultat d'une fonction telle que MD5,
appliqu&eacute;e sur le nom du fichier. Sinon, vous pouvez envoyer IV avec
les donn&eacute;es chiffr&eacute;es, (reportez-vous au chapitre 9.3 de
&book.applied.cryptography; by Schneier (ISBN 0-471-11709-9) pour plus de
d&eacute;tails sur le sujet).
</para>
</section>
<section id="mcrypt.examples">
&reftitle.examples;
<para>
Mcrypt permet de chiffrer et de d&eacute;chiffrer, en utilisant les m&eacute;thodes
mentionn&eacute;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&eacute;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 cle est ultra-secrete";
$input = "Rencontrons-nous dans notre place secrete a 9 h 00.";
$encrypted_data = mcrypt_ecb(MCRYPT_TripleDES, $key, $input, MCRYPT_ENCRYPT);
?>
]]>
</programlisting>
</example>
Cet exemple va retourner les donn&eacute;es crypt&eacute;es dans la variable
$encrypted_data.
</para>
<para>
Si vous avez compil&eacute; &php; avec libmcrypt 2.4.x, ces fonctions sont toujours
disponibles, mais il est vivement conseill&eacute; d'utiliser les nouvelles
fonctions avanc&eacute;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 cle secrete";
$input = "Rendez-vous &agrave; 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&eacute;es crypt&eacute;es dans la variable
<literal>$encrypted_data</literal>.
</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:
-->