Что такое код mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_open — Opens the module of the algorithm and the mode to be used

Описание

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. «twofish» or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close() .

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

The algorithm to be used.

The algorithm_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string («»), the value set by the mcrypt.algorithms_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled into libmcrypt (usually /usr/local/lib/libmcrypt ).

The mode to be used.

The mode_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string («»), the value set by the mcrypt.modes_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled-in into libmcrypt (usually /usr/local/lib/libmcrypt ).

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

Normally it returns an encryption descriptor, or FALSE on error.

Примеры

Пример #1 mcrypt_module_open() Examples

= mcrypt_module_open ( MCRYPT_DES , » ,
MCRYPT_MODE_ECB , ‘/usr/lib/mcrypt-modes’ );

$td = mcrypt_module_open ( ‘rijndael-256’ , » , ‘ofb’ , » );
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes . The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Пример #2 Using mcrypt_module_open() in encryption

/* Open the cipher */
$td = mcrypt_module_open ( ‘rijndael-256’ , » , ‘ofb’ , » );

/* Create the IV and determine the keysize length, use MCRYPT_RAND
* on Windows instead */
$iv = mcrypt_create_iv ( mcrypt_enc_get_iv_size ( $td ), MCRYPT_DEV_RANDOM );
$ks = mcrypt_enc_get_key_size ( $td );

/* Create key */
$key = substr ( md5 ( ‘very secret key’ ), 0 , $ks );

/* Intialize encryption */
mcrypt_generic_init ( $td , $key , $iv );

/* Encrypt data */
$encrypted = mcrypt_generic ( $td , ‘This is very important data’ );

/* Terminate encryption handler */
mcrypt_generic_deinit ( $td );

/* Initialize encryption module for decryption */
mcrypt_generic_init ( $td , $key , $iv );

/* Decrypt encrypted string */
$decrypted = mdecrypt_generic ( $td , $encrypted );

/* Terminate decryption handle and close module */
mcrypt_generic_deinit ( $td );
mcrypt_module_close ( $td );

/* Show string */
echo trim ( $decrypted ) . «\n» ;
?>

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

  • mcrypt_module_close() — Closes the mcrypt module
  • mcrypt_generic() — This function encrypts data
  • mdecrypt_generic() — Decrypts data
  • mcrypt_generic_init() — This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() — This function deinitializes an encryption module

mcrypt_module_open() warning !

I am using Mamp server on Mac OSX. I am trying to implement the cryptography in my project for client side cookies. I am getting warning

Warning: mcrypt_module_open() [function.mcrypt-module-open]: Could not open encryption module

I checked in the php.ini file and there is no semicolon in front of the mcrypt extension. Can someone help with this issue.

Thanks in advance

5 Answers 5

The mcrypt module is enabled in your php.ini, otherwise you would get an error message along the lines Call to undefined function .

What it indicates is that the requested cipher method is not available. You have either a typo, or one of the ciphers is not compiled into your version of mcrypt.so .

The manual page and the extra parameters indicate that the libmcrypt on your system might depend on shared modules itself. So you might want to search for another version. Try a MAMP update, or use the pro version that exists for that PHP distribution.

I am also using this sample from George Schlassnagles «Advanced PHP Programming» (page 334ff). This code includes some mistakes. As you refer to a static variable I think you have to call it with self::$var.

Илон Маск рекомендует:  Display package пакет отображения

This one should work:

Note, that there are some more mistakes like:

  • self::$resettime in the validate() function should obviously be named self::$warning.
  • static $key in functions _encrypt() and _decrypt() should be self::$key
  • $glue in the _package() and the _unpackage functions should be self::$glue
  • function _reissue() is never used
  • $td in function _encrypt() should be $this->td
  • set_cookie in functions set() and logout() should be named setcookie and prov >td); in _decrypt() should be $ivsize = mcrypt_get_iv_size(self::$cypher, self::$mode);

Что такое код mcrypt_module_open

1948 просмотра

1 ответ

590 Репутация автора


Я использую magento, когда я загружаю страницу, я получаю следующую ошибку:

Я использую php7.1 и установил mcrypt:

Однако, когда я перезагружаю страницу, я получаю ту же ошибку?

Что я могу здесь делать не так?

Когда я запускаю php -i, я вижу:

Ответы (1)

плюса

11869 Репутация автора

Вероятно, это связано с тем, что ваша версия magento не совместима с вашей версией php.

Новые книги

Новая книга Игоря Зорина написана для продавцов, менеджеров по продажам, руководителей торговых компаний, всех тех, кто в силу своих профессиональных прав и обязанностей напрямую контактирует с клиентами – покупателями. В книге подробно описаны и классифицированы наиболее часто встречающиеся типы трудных клиентов, а также просто и понятно изложены правила и приемы работы с ними. Книга одинаково доступна и полезна как начинающим продавцам, так и «бывалым» менеджерам.

Читая книгу, вы получите полный доступ к арсеналу с приемами и можете «вооружиться», взяв из предложенного только то, что посчитаете нужным и достаточным. То, что вы сможете понять и принять. То, что будет вам «по руке», во что вы сможете реально поверить. Вы получите проверенное временем и практикой оружие, которое поможет вам справиться не только с любым Его Величеством Трудным Клиентом, но и с самим собой.

Вниманию читателей предлагается справочник по Flash.

Справочник предназначается для людей, уже освоивших азы программирования в Flash.

Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.

Дата выхода данной версии справочника: 12:47, 20 марта 2007.

mcrypt_module_open

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()

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

Пример 2. Использование mcrypt_module_open() при шифровании

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

Что такое код mcrypt_module_open

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41

Как подключить mcrypt?
Делаю так в файле php.ini раскомментил строку
extension=php_mcrypt.dll
и в этом же файле прописал
extension_dir = «p:\php\ext»
там собственно и лежит эта dll, так вот, запускаю скрипт, он мне говорит, что не знает таких функций.
ВЕРСИИ ПХП И АПАЧА САМЫЕ ПОСЛЕДНИЕ!

Fatal error: Call to undefined function mcrypt_module_open() in P:\Apache2.2\htdocs\index12.php on line 24
вот что выдает apache
пока приходится проверять на бесплатном хостинге

Это сообщение отредактировал(а) Dmi3ev — 13.1.2009, 15:22

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

Белый и лохматый

Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29

s0lman
Дата 13.1.2009, 15:27 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41

Dmi3ev
Дата 13.1.2009, 15:32 (ссылка) | (нет голосов) Загрузка .
Цитата
В phpinfo() ничего не пишется?

про mcrypt ничего

Это сообщение отредактировал(а) Dmi3ev — 13.1.2009, 15:32

Илон Маск рекомендует:  Что такое код fbsql_fetch_assoc

Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13

theworldcreator
Дата 13.1.2009, 15:33 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007


Репутация: нет
Всего: 41

я останавливаю и запускаю апач, потому что у меня php одключен, как модуль, те его файл php.ini читается при запуске apache.

Добавлено через 31 секунду
theworldcreator, так что ваш совет я уже делал не раз.

Dmi3ev
Дата 13.1.2009, 15:58 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13

theworldcreator
Дата 13.1.2009, 16:08 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41

Dmi3ev
Дата 13.1.2009, 16:14 (ссылка) | (нет голосов) Загрузка .
Цитата
А «p:\php\ext\php_mcrypt.dll» существует?

Профиль
Группа: Участник
Сообщений: 588
Регистрация: 7.2.2006

Репутация: нет
Всего: нет

knut
Дата 13.1.2009, 17:21 (ссылка) | (нет голосов) Загрузка .
Цитата
Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41

Проблема решена. Последовательность действий
1) libmcrypt.dll надо кинуть в c:\windows\.
2) в файле php.ini убрать комментарии (;) перед строкой
extension=php_mcrypt.dll
3) прописать путь расширений, те php_mcrypt.dll лежит
extension_dir = «p:\php\ext»

Что-то с кодировкой не то, или чего, но при расшифровке ромбики с вопросиками, что это?

Это сообщение отредактировал(а) Dmi3ev — 13.1.2009, 17:30

Dmi3ev
Дата 13.1.2009, 17:26 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53

unicross
Дата 13.1.2009, 18:14 (ссылка) | (нет голосов) Загрузка .
Цитата(Dmi3ev @ 13.1.2009, 17:26 )
libmcrypt.dll надо кинуть в c:\windows\.

Зачем засорять системную папку? В один прекрасный момент вы смените версию PHP, а потом будете долго искать причину работы новой версии PHP со старой DLL.

Необходимо просто прописать путь в переменную PATH и все. Никуда ничего копировать не надо.

Цитата(Dmi3ev @ 13.1.2009, 17:26 )
3) прописать путь расширений, те php_mcrypt.dll лежит
extension_dir = «p:\php\ext»
Код
extension_dir = «p:/php/ext»

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41

Dmi3ev
Дата 13.1.2009, 18:35 (ссылка) | (нет голосов) Загрузка .
Цитата
Никуда ничего копировать не надо.
Цитата
Замените путь на
extension_dir = «p:/php/ext»
Цитата
Что-то с кодировкой не то, или чего, но при расшифровке ромбики с вопросиками, что это?

Лучше с этим помогите.

Добавлено через 4 минуты и 41 секунду
те я шифрую фразу «я шифрую!» она шифруется, потом расшифровывается и позади расшифрованной фразы ромбики с вопросиками, я просто пока новичок, что это за нло. на сервере бесплатного хостинга такого нет, что настраивать и как.

Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53

unicross
Дата 13.1.2009, 18:41 (ссылка) | (нет голосов) Загрузка .
Цитата(Dmi3ev @ 13.1.2009, 18:35 )
в файлах апача так и нужно делать, на то есть причины, а вот в файле php.ini так делать зачем? не понимаю.
Цитата(Dmi3ev @ 13.1.2009, 18:35 )
Что-то с кодировкой не то, или чего, но при расшифровке ромбики с вопросиками, что это?Лучше с этим помогите.

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41

Dmi3ev
Дата 13.1.2009, 18:47 (ссылка) | (нет голосов) Загрузка .
Цитата
Да и код желательно показать.

Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53

unicross
Дата 13.1.2009, 18:58 (ссылка) | (нет голосов) Загрузка .
Цитата(Dmi3ev @ 13.1.2009, 17:26 )
Что-то с кодировкой не то, или чего, но при расшифровке ромбики с вопросиками, что это?


Код
encrypted : `ЁЏ%Фsa€ЯuL_Н‰$э1Odecrypted : вот, что я шифрую.

Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: нет
Всего: 41

Dmi3ev
Дата 13.1.2009, 19:24 (ссылка) | (нет голосов) Загрузка .
Цитата
У меня ваш код прошел на ура.

когда я его запускаю на бесплатном хостинге, у меня тоже все ок, а если локально, то в конце добавляются ромбики (сама фраза правильно расшифровывается, только после нее лажа), в которых знаки вороса.

Добавлено через 1 минуту и 23 секунды
точнее, вот код, хотя это не суть, наверное.

Что такое код mcrypt_module_open

mcrypt_module_open — This function opens the module of the algorithm and the mode to be used

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

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, eg. «twofish» or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close() . Normally it returns an encryption descriptor, or FALSE on error.

The algorithm_directory and mode_directory are used to locate the encryption modules. When you supply a directory name, it is used. When you set one of these to the empty string («»), the value set by the mcrypt.algorithms_dir or mcrypt.modes_dir ini-directive is used. When these are not set, the default directories that are used are the ones that were compiled in into libmcrypt (usally /usr/local/lib/libmcrypt).

Example 1. mcrypt_module_open() Example

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes . The second example uses strings as name for the cipher an dmode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Example 2. Using mcrypt_module_open() in encryption

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes . The second example uses strings as name for the cipher an dmode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Что такое код mcrypt_module_open

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()

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

Пример 2. Использование mcrypt_module_open() при шифровании

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

Что такое код mcrypt_module_open

1948 просмотра

1 ответ

590 Репутация автора

Я использую magento, когда я загружаю страницу, я получаю следующую ошибку:

Я использую php7.1 и установил mcrypt:

Однако, когда я перезагружаю страницу, я получаю ту же ошибку?

Что я могу здесь делать не так?

Когда я запускаю php -i, я вижу:

Ответы (1)

плюса

11869 Репутация автора

Вероятно, это связано с тем, что ваша версия magento не совместима с вашей версией php.

mcrypt_encrypt в функции режима CFB в CryptoJS — node.js

Я пытаюсь преобразовать функцию mcrypt_encrypt написанную на php to node.js, я использую CryptoJS в node.js и пробовал всевозможные параметры конфигурации, и мне не удастся понять, что это такое.

Код JavaScript, который я пробовал, не знает, что я делаю неправильно:

    1 2
  • 19 авг 2020 2020-08-19 11:28:52
  • Prashanth Kumar B

2 ответа

В PHP, когда вы используете mcrypt_module_open с Rijndael-128, вам необходимо передать 32-байтовый ключ и 16-байтный IV.

Таким образом, с помощью nodeJs вы можете использовать крипто- модуль, например:

  • 19 авг 2020 2020-08-19 11:28:53
  • Paul Boutes

Режим обратной связи с шифрованием (CFB) — это семейство режимов блочного шифрования с параметром размера сегмента. Mcrypt поддерживает только CFB8, тогда как CryptoJS поддерживает только CFB128. Они несовместимы.

Я реализовал CFBb в CryptoJS, который также поддерживает 8-битные сегменты, но он тестируется только для CryptoJS 3.1.2, а не для версии CryptoJS 2, доступной через NPM.

Илон Маск рекомендует:  Что такое код createdibitmap
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL