mcrypt_module_open
(PHP 4 >= 4.0.2)
mcrypt_module_open --
Ouvre le module de l'algorithme et le mode à utiliser
Description
resource
mcrypt_module_open ( string algorithm, string algorithm_directory, string mode, string mode_directory)
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 librairie est refermée en appelant
mcrypt_module_close, mais il n'est pas nécessaire
d'appeler cette fonction si mcrypt_generic_end() est
utilisé. Normalement, mcrypt_module_open()
retourne un pointeur d'encryption, ou bien FALSE en cas d'erreur.
algorithm_directory et
mode_directory servent à repérer les
modules d'encryption. Si vous fournissez un nom de dossier, il sera
utilisé.
Si vous passez une chaîne vide (""), la valeur utilisé par
mcrypt.algorithms_dir ou
mcrypt.modes_dir sera celle indiquée dans les
directives de configuration. Lorsque ces paramètres ne sont pas fournis
les valeurs par défaut, compilées avec la librairie sont
utilisées. (généralement /usr/local/lib/libmcrypt).
Exemple 1. Exemple avec mcrypt_module_open()
<?php $td = mcrypt_module_open (MCRYPT_DES, "", MCRYPT_MODE_ECB, "/usr/lib/mcrypt-modes"); ?>
|
|
L'exemple ci-dessus va essayer d'ouvrir le module de chiffrement par
DES, dans le dossier par défaut, et le mode EBC dans le dossier
/usr/lib/mcrypt-modes.
Exemple 2. Using mcrypt_module_open() in encryption
<?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é */ $key = substr (md5 ('very secret key'), 0, $ks);
/* Intialise 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"; ?>
|
|
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 EBC 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 or 2.5.x.
Voir aussi
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init() et
mcrypt_generic_deinit().