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 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

### Description

function 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 chiffrement. Lorsqu'on spécifie un nom de dossier, il sera utilisé. Si on spécifie 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 chiffrement. Si un nom de dossier est spécifié, il sera utilisé. Lorsqu'on spécifie 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 chiffrement, 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 ou 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);

    /* Initialise 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 tampons nécessaires
- mcrypt_generic_deinit() - Prépare le module pour le déchargement

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open