Функции Язык программирования PHP

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

Windows и PWS/IIS 3

Следующие шаги не влияют на инсталяцию web-сервера и выполняются только в том случае, если вы хотите исполнять ваши php-скрипты из командной строки (пример: run c:\myscripts\test.php) или двойным щелчком на скрипте в окне просмотра директории. Вы можете пропустить эти шаги, если предпочитаете загружать PHP-файлы в текстовый редактор, где можете дважды щёлкнуть по ним.

Пользователи PWS и IIS 3 теперь имеют полностью работоспособную систему. Пользователи IIS 3 могут использовать nifty-утилиту от Steven Genusa для конфигурирования отображения скриптов.