Новые книги

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет собой отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из других операционных систем. Подробно рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование свободно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Изобилие хорошо документированных примеров кода помогает лучше усвоить особенности программирования в Linux.

Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
Миллионы людей ежедневно используют YouTube. А почему бы не разместить там ролик, продвигающий ваши товары или идеи? О том, как сделать видеоролик на YouTube активным маркетинговым инструментом, рассказывает эта книга.

Она представляет собой не просто описание и руководство, а пошаговую инструкцию: от разработки стратегии присутствия компании на YouTube, создания, редактирования и размещения роликов, отслеживания их эффективности до управления продажами, возникающими в результате просмотров. Максимально эффективно с минимальными затратами!

YouTube-маркетинг не требует значительных вложений и подходит для бережливого бизнеса любого размера.

mcrypt_module_open

Учебник РНР
Назад Вперёд

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