Forum und email

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

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".

Example#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($key0mcrypt_enc_get_key_size($td));
$iv_size mcrypt_enc_get_iv_size($td);
$iv mcrypt_create_iv($iv_sizeMCRYPT_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_textstrlen($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(), mcrypt_generic_init() et mcrypt_generic_deinit().