string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv)
Функция mcrypt_decrypt (листинг 12.65) предназначена для расшифровки данных. Аргументом cipher задается один из шифров, перечисленных в табл. 12.8. Аргумент key задает секретный ключ, используемый для расшифровки данных, заданных аргументом data. Аргументом mode задается один из режимов, указанных в табл. 12.9. Необязательный аргумент iv задает вектор инициализации, необходимый для некоторых алгоритмов и режимов.

Листинг 12.65. Функция mcrypt_decrypt

<?php
// задать тестовые данные
$message = "This message is sensitive."; $key = "secret"; //зашифровать сообщение
$code = @mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $message,
MCRYPT_MODE_ECB); // распечатать расшифрованное сообщение print(@mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $code,
MCRYPT_MODE_ECB));
?> 
string mcrypt_enc_get_algorithms_name(resource mcrypt)
Функция mcrypt_enc_get_algorithms_name возвращает название алгоритма, используемого открытым ресурсом. 
integer mcrypt_enc_get_block_size(resource mcrypt)
Функция mcrypt_enc_get_block_size предназначена для получения размера блока открытого ресурса.
integer mcrypt_enc_get_iv_size(resource mcrypt)
Функция mcrypt_enc_get_iv_size возвращает размер вектора инициализации, используемого открытым ресурсом.
integer mcrypt_enc_get_key_size(resource mcrypt)
Функция mcrypt_enc_get_key_size предназначена для определения максимального размера ключа, разрешенного открытым ресурсом.
string mcrypt_enc_get_modes_name(resource mcrypt)
Функция mcrypt_enc_get_modes_name предназначена для получения имени режима, используемого открытым ресурсом.
array mcrypt_enc_get_supported_key_sizes(resource mcrypt)
Функция mcrypt_enc_get_supported_key_sizes используется для получения массива, содержащего размеры, используемые открытым ресурсом.
boolean mcrypt_enc_is_block_algorithm(resource mcrypt)
Функция mcrypt_enc_is_block_algorithm используется для проверки работы с блочными шифрами алгоритма открытого ресурса.
boolean mcrypt_enc_is_block_algorithm_mode(resource mcrypt)
Функция mcrypt_enc_is_block_algorithm_mode используется для проверки поддержки используемым данным ресурсом режима работы с блочными шифрами.
boolean mcrypt_enc_is_block_mode(resource mcrypt)
Функция mcrypt_enc_is_block_mode предназначена для проверки наличия блочного вывода режимом, используемым заданным ресурсом.
boolean mcrypt_enc_self_test(resource mcrypt)
Функция mcrypt_enc_self_test предназначена для проверки алгоритма, используемого открытым ресурсом.
string mcrypt_encrypt(string cipher, string key, string data, string mode, string iv)
Функция mcrypt_encrypt предназначена для шифрования данных. Аргументом cipher задается один из шифров, перечисленных в табл. 12.8. Аргумент key является секретным ключом, предназначенным для кодирования данных, переданных аргументом data. Аргумент mode должен иметь одно из значений, представленных в табл. 12.9. Необязательный аргумент iv является вектором инициализации для некоторых алгоритмов и режимов.
Кодирование и декодирование
Кодирование и декодирование
string string mcrypt_generic(resource mcrypt, string data)
Функция mcrypt_generic (листинг 12.66) предназначена для шифрования данных. Для соблюдения принципа кратности длины данных размеру блока она дополняет избыточные данные символами NULL. Перед использованием функции необходимо инициализировать ресурс с помощью функции mcrypt_generic_init.

| Листинг 12.66. Функция mcrypt_generic_
<?php
$message = "This message is sensitive."; // открыть шифр
$mcrypt = mcrypt_module_open(MCRYPT_3DES, NULL,
MCRYPT_MODE_ECB, NULL); //создать вектор инициализации
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($mcrypt),
MCRYPT_DEV_RANDOM); //создать ключ; для того чтобы ключ был достаточно длинным, необходимо использовать md5
$key = substr(md5('secret'), 0, mcrypt_enc_get_key_size($mcrypt)); // инициализация шифровки
mcrypt_generic_init($mcrypt, $key, $iv); // зашифровать
$code = mcrypt_generic($mcrypt, $message); // очистить
mcrypt_generic_deinit($mcrypt); // инициализация расшифровки mcrypt_generic_init($mcrypt, $key, $iv); // расшифровать
print(mdecrypt_generic($mcrypt, $code)); // очистить
mcrypt_generic_deinit($mcrypt); // закрыть модуль mcrypt_module_close($mcrypt);
?>

boolean mcrypt_generic_deinit(resource mcrypt)
Функция mcrypt_generic_deinit используется для освобождения памяти, отведенной под ресурс mcrypt, созданный функцией mcrypt_generic_init.
integer mcrypt_generic_init(resource mcrypt, string key, string iv)
Функция mcrypt_generic_init предназначена для инициализации ресурса с помощью ключа и вектора инициализации, после чего можно вызывать функции mcrypt_generic или mdecrypt_generic.
integer mcrypt_get_block_size(integer algorithm)
Функция mcrypt_get_block_size используется для определения размера блока для заданного алгоритма шифрования. При этом используется одна из констант, приведенных в табл. 12.8. 
string mcrypt_get_cipher_name(integer algorithm)
Функция mcrypt_get_cipher_name используется для определения имени режима шифрования. При этом используется одна из констант, приведенных в табл. 12.8.