Ouvre le module de l'algorithme et du mode à utiliser

# mcrypt_module_open

(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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0. Dépendre de cette fonction est fortement déconseillé.

### Description

mcrypt_module_open ( string `$algorithm` , string `$algorithm_directory` , string `$mode` , string `$mode_directory` ) : resource

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().

### Liste de paramètres

`algorithm`

  Une 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).

`mode`

  Une 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).

### Valeurs de retour

Normalement, cette fonction retourne un descripteur de cryptage, ou `FALSE` si une erreur survient.

### Exemples

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é */
$key = substr(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";
?>`

### Voir aussi

- mcrypt_module_close() - Décharge le module de chiffrement
- mcrypt_generic() - Chiffre les données
- mdecrypt_generic() - Déchiffre les données
- mcrypt_generic_init() - Initialise tous les buffers nécessaires
- mcrypt_generic_deinit() - Prépare le module pour le déchargement