(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mcrypt_module_open — Ouvre le module de l'algorithme et du mode à utiliser
Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.
$algorithm,$algorithm_directory,$mode,$mode_directory
   mcrypt_module_open() ouvre le module de l'algorithme
   et du mode à utiliser. Le nom de l'algorithme est spécifié par le paramètre
   algorithm (par exemple : "twofish"),
   ou bien une des constantes MCRYPT_ciphername. La bibliothèque est refermée
   en appelant mcrypt_module_close().
  
algorithmUne constante parmi les constantes
MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.
algorithm_directory
       Le paramètre  algorithm_directory est utilisé
       pour localiser le module de cryptage. Lorsque vous spécifiez un
       nom de dossier, il sera utilisé. Si vous spécifiez une chaîne vide
       (""), la valeur définie dans la directive
       mcrypt.algorithms_dir du fichier php.ini sera
       utilisée. Lorsqu'elle n'est pas définie, le dossier par défaut utilisé
       sera celui dans lequel se trouve la bibliothèque libmcrypt
       (habituellement, /usr/local/lib/libmcrypt).
      
modeUne constantes parmi les constantes
MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".
mode_directory
       Le paramètre mode_directory est utilisé pour localiser
       le module de cryptage. Si un nom de dossier est spécifié, il sera utilisé.
       Lorsque vous spécifiez une chaîne vide (""), la valeur
       de la directive mcrypt.modes_dir du fichier php.ini
       sera utilisée. Si elle n'est pas définie, le dossier par défaut utilisé
       sera celui dans lequel se trouve la bibliothèque libmcrypt
       (habituellement /usr/local/lib/libmcrypt).
      
   Normalement, cette fonction retourne un descripteur de cryptage, ou
   false si une erreur survient.
  
Exemple #1 Exemple avec mcrypt_module_open()
<?php
$td = mcrypt_module_open(MCRYPT_DES, '',
    MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>
   La première ligne de l'exemple ci-dessus va essayer d'ouvrir le chiffrement
   DES, dans le dossier par défaut, et le mode ECB dans le dossier
   /usr/lib/mcrypt-modes. Le second exemple utilise
   les chaînes comme nom pour le chiffrement et le mode. Cela ne fonctionne
   que si l'extension est compilée avec libmcrypt 2.4.x or 2.5.x.
  
Exemple #2 Utilisation de mcrypt_module_open() pour chiffrer
<?php
/* Charge un chiffrement */
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
/* Crée le VI et détermine la taille de la clé */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$ks = mcrypt_enc_get_key_size($td);
/* Crée la clé (exemple uniquement : MD5 n'est pas un bon algorithme de hachage pour cela) */
$key = substr(hash('md5', 'very secret key'), 0, $ks);
/* Intialise le chiffrement */
mcrypt_generic_init($td, $key, $iv);
/* Chiffre les données */
$encrypted = mcrypt_generic($td, 'This is very important data');
/* Libère le gestionnaire de chiffrement */
mcrypt_generic_deinit($td);
/* Initialise le module de chiffrement pour le déchiffrement */
mcrypt_generic_init($td, $key, $iv);
/* Déchiffre les données */
$decrypted = mdecrypt_generic($td, $encrypted);
/* Libère le gestionnaire de déchiffrement, et ferme le module */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* Affiche la chaîne */
echo trim($decrypted)."\n";
?>
