Mcrypt можно использовать для шифрования и
дешифрования с использованием вышеупомянутых
шифров. Если модуль собран с
libmcrypt-2.2.x, четыре важных
команды mcrypt (mcrypt_cfb(),
mcrypt_cbc(), mcrypt_ecb()
и mcrypt_ofb()) могут работать в
обоих режимах, именуемых
MCRYPT_ENCRYPT
и
MCRYPT_DECRYPT
соответственно.
Если модуль собран с libmcrypt 2.4.x или 2.5.x, эти функции также будут доступны, но рекомендуется использовать более продвинутые функции.
Пример #1 Шифрование с помощью AES с 256-битным ключем для версии 2.4.x и выше в режиме CBC
<?php
$key = hash('sha256', 'this is a secret key', true);
$input = "Let us meet at 9 o'clock at the secret place.";
$td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
?>