8.69 chiffrement mcrypt
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . Mcrypt ciphers . Exemples . mcrypt_cbc . mcrypt_cfb . mcrypt_create_iv . mcrypt_decrypt . mcrypt_ecb . mcrypt_enc_get_algorithms_name . mcrypt_enc_get_block_size . mcrypt_enc_get_iv_size . mcrypt_enc_get_key_size . mcrypt_enc_get_modes_name . mcrypt_enc_get_supported_key_sizes . mcrypt_enc_is_block_algorithm_mode . mcrypt_enc_is_block_algorithm . mcrypt_enc_is_block_mode . mcrypt_enc_self_test . mcrypt_encrypt . mcrypt_generic_deinit . mcrypt_generic_end . mcrypt_generic_init . mcrypt_generic . mcrypt_get_block_size . mcrypt_get_cipher_name . mcrypt_get_iv_size . mcrypt_get_key_size . mcrypt_list_algorithms . mcrypt_list_modes . mcrypt_module_close . mcrypt_module_get_algo_block_size . mcrypt_module_get_algo_key_size . mcrypt_module_get_supported_key_sizes . mcrypt_module_is_block_algorithm_mode . mcrypt_module_is_block_algorithm . mcrypt_module_is_block_mode ->mcrypt_module_open . mcrypt_module_self_test . mcrypt_ofb . mdecrypt_generic
|
8.69.42 mcrypt_module_open()
Ouvre le module de l'algorithme et du mode à utiliser
[ Exemples avec mcrypt_module_open ] PHP 4 >= 4.0.2, PHP 5
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 bibliothèque 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 de cryptage, ou bien
FALSE
en cas d'erreur.
algorithm_directory
et
mode_directory
servent à repérer les
modules de cryptage. 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 bibliothèque, sont
utilisées. (Généralement /usr/local/lib/libmcrypt.)
| Exemple avec mcrypt_module_open |
<?php $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');
$td = mcrypt_module_open('rijndael-256', '', 'ofb', ''); ?>
|
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.
| Utilisation de mcrypt_module_open pour encrypter |
<?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
.
|