Déchiffre les données

# mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mdecrypt_generic — Déchiffre les données

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 mdecrypt_generic(resource `$td`, string `$data`): string

Déchiffre les données `data`. À noter que la longueur de la chaîne déchiffrée peut être plus longue que la chaîne originale, car elle peut avoir été complétée par des caractères.

### Liste de paramètres

`td`
  Un descripteur de chiffrement, retourné par la fonction mcrypt_module_open()
`data`
  Les données chiffrées.

### Valeurs de retour

Retourne la chaîne déchiffrée.

### Exemples

Exemple #1 Exemple avec mdecrypt_generic()

    <?php
    /* Données */
    $key = 'Ceci est une très longue clé de chiffrement, et même trop longue';
    $plain_text = 'Ceci sont des données importantes';

    /* Ouvre le module et crée un VI */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialise le module de chiffrement */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Chiffre les données */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Réinitialise les tampons pour le déchiffrement */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Nettoie */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "erreur\n";
    }
    ?>

L'exemple ci-dessus montre comment vérifier que les données avant chiffrement sont bien les mêmes que celles après chiffrement/déchiffrement. Il est très important de réinitialiser le buffer de chiffrement avec mcrypt_generic_init() avant de déchiffrer les données.

Le gestionnaire de déchiffrement doit toujours être initialisé par la fonction mcrypt_generic_init() avec une clé et un VI avant d'appeler cette fonction. Lorsque le chiffrement est fait, il faut qu'on libère les données chiffrées en appelant mcrypt_generic_deinit(). Voir mcrypt_module_open() pour un exemple.

### Voir aussi

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