mdecrypt_generic
(PHP 4 >= 4.0.2)
mdecrypt_generic -- Déchiffre
Description
string
mdecrypt_generic ( resource td, string data)
mdecrypt_generic() 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 "\0".
Exemple 1. Exemple avec mdecrypt_generic()
<?php /* Données */ $key = 'Ceci est une très longue clé de chiffrement, voire 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 buffers 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
chiffrage sont bien les mêmes que celles après
chiffrage/déchiffrage. 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ée
et un VI avant d'appeler cette fonction. Lorsque le chiffrement est fait,
il faut que vous libérirez les données chiffrées en appelant
mcrypt_generic_deinit().
Voir mcrypt_module_open() pour un exemple.
Voir aussi
mcrypt_generic(),
mcrypt_generic_init() et
mcrypt_generic_deinit().