mdecrypt_generic
(PHP 4 >= 4.0.2, PHP 5)
mdecrypt_generic — Déchiffre les données
Description
$td
, string $data
)
Déchiffre les données data
. Notez 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.
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); /* Nettoye */ 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 que nous ne déchiffriez 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 que vous libériez 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 buffers nécessaires
- mcrypt_generic_deinit() - Prépare le module pour le déchargement