Дипломные работы, курсовые проекты на заказ, контрольные работы на заказ

 
Начертательная геометрия Практикум по решению задач Геометрическое черчение Инженерная графика ЕСКД Кратные интегралы Математический анализ Матрицы Пределы Производные Векторная алгебра Интегральное исчисление ТФКП Ядерная физика Электростатика Магнетизм Оптика Информационные технологии
Учебник РНР
Назад Вперёд

mcrypt_module_open

(PHP 4 >= 4.0.2)

mcrypt_module_open - эта функция открывает модуль алгоритма и используемый режим.

Описание

resource mcrypt_module_open (string algorithm, string algorithm_directory, string mode, string mode_directory)

Эта функция открывает модуль алгоритма и используемый режим. Имя алгоритма специфицируется в параметре algorithm, например, "twofish", или является одной из констант MCRYPT_ciphername. Модуль закрывается вызовом функции mcrypt_module_close(). Нормально возвращается дескриптор шифрования, FALSE - при ошибке.

algorithm_directory и mode_directory используются для локализации модулей шифрования. Если вы предоставили имя директории, используется оно. Если вы установите в один из этих параметров пустую строку (""), используется значение ini-директивы mcrypt.algorithms_dir или mcrypt.modes_dir. Если они не установлены, используются директории по умолчанию, которые были скомпилированы для libmcrypt (обычно это /usr/local/lib/libmcrypt).

Пример 1. mcrypt_module_open()
<?php $td = mcrypt_module_open (MCRYPT_DES, '', MCRYPT_MODE_ECB, 
'/usr/lib/mcrypt-modes'); $td = mcrypt_module_open ('rijndael-256', '', 'ofb', 
''); ?>

Первая строка примера пытается открыть DES-шифр из директории по умолчанию и EBC-режим из директории /usr/lib/mcrypt-modes. Вторая строка использует строки как имена для шифра и dmode; это будет работать только в том случае, если расширение скомпилировано относительно libmcrypt 2.4.x или 2.5.x.

Пример 2. Использование mcrypt_module_open() при шифровании
<?php 
/* Открыть шифр */ $td = mcrypt_module_open ('rijndael-256', '', 'ofb', ''); /* 
Создать IV и определить длину keysize */ $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), 
MCRYPT_DEV_RANDOM); $ks = mcrypt_enc_get_key_size ($td); /* Создать ключ */ $key 
= substr (md5 ('very secret key'), 0, $ks); /* Инициализировать шифрование */ 
mcrypt_generic_init ($td, $key, $iv); /* Шифровать данные */ $encrypted = mcrypt_generic 
($td, 'This is very important data'); /* Закрыть дескриптор шифрования */ mcrypt_generic_deinit 
($td); /* Инициализировать модуль шифрования для дешифрования */ mcrypt_generic_init 
($td, $key, $iv); /* Дешифровать шифрованную строку */ $decrypted = mdecrypt_generic 
($td, $encrypted); /* Закрыть дескриптор дешифрования и закрыть модуль */ mcrypt_generic_deinit 
($td); mcrypt_module_close ($td); /* Показать строку */ echo trim ($decrypted)."\n"; 
?>

Первая строка примера пытается открыть DES-шифр из директории по умолчанию и EBC-режим из директории /usr/lib/mcrypt-modes. Вторая строка использует строки как имена для шифра и dmode, это будет работать только в том случае, если расширение скомпилировано относительно libmcrypt 2.4.x или 2.5.x.

См. также mcrypt_module_close(), mcrypt_generic(), mdecrypt_generic() , mcrypt_generic_init() и mcrypt_generic_deinit().


Назад Оглавление Вперёд
mcrypt_module_is_block_modeВверхmcrypt_module_self_test