PHP 8.6.0 Beta 1 is available for testing

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_openОткрывает модуль шифрования с использованием указанных алгоритма и режима

Внимание

Начиная с PHP 7.1.0 функция УСТАРЕЛА, а в PHP 7.2.0 функцию УДАЛИЛИ. Полагаться на функцию настоятельно не рекомендуют.

Описание

function mcrypt_module_open(
string $algorithm,
string $algorithm_directory,
string $mode,
string $mode_directory
): resource

Открывает модуль шифрования с использованием указанных алгоритма и режима. Имя алгоритма задаётся его именем, например "twofish", или с помощью константы MCRYPT_ciphername. Закрыть модуль можно с помощью функции mcrypt_module_close() .

Список параметров

algorithm
Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.
algorithm_directory
Параметр algorithm_directory используется для задания местонахождения модуля шифрования. Если передать пустую строку, то (""), то будет использовано значение директивы mcrypt.algorithms_dir из php.ini. Если же оно тоже не задано, то будет использована стандартная директория с которой компилировался libmcrypt (обычно /usr/local/lib/libmcrypt).
mode
Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".
mode_directory
Параметр mode_directory используется для задания местонахождения модуля режима. Если передать пустую строку, то (""), то будет использовано значение директивы mcrypt.modes_dir из php.ini. Если же оно тоже не задано, то будет использована стандартная директория, с которой компилировался libmcrypt (обычно /usr/local/lib/libmcrypt).

Возвращаемые значения

Обычно возвращается дескриптор шифрования или false в случае возникновения ошибки.

Примеры

Пример #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 из директории по умолчанию и использовать режим ECB из директории /usr/lib/mcrypt-modes. Во втором примере используем строковые имена шифра и режима, что работает только с модулем, собранным с библиотекой libmcrypt 2.4.x or 2.5.x.

Пример #2 Пример использования mcrypt_module_open()

<?php
 /* Открываем модуль шифрования */
 $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
 /* Создаём инициализирующий вектор и определяем длину ключа.
 * Для ОС Windows указываем MCRYPT_RAND */
 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
 $ks = mcrypt_enc_get_key_size($td);
 /* Создаём ключ (только как пример: алгортим MD5 — плохой алгоритм хеширования для хранения секретов) */
 $key = substr(hash('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";
?>

Смотрите также

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /