NickGri Опубликовано: января 3, 2019 Жалоба Поделиться Опубликовано: января 3, 2019 Добрый день. Подскажите где взять mCrypt DLL под php 7.2 x64 (windows) на оф сайте Цитата Расширение mcrypt не развивалось уже почти десять лет, а также было крайне сложным в использовании. Оно было объявлено устаревшим в пользу OpenSSL. Оно будет удалено из ядра PHP и перемещено в PECL в PHP 7.2. Или подскажите как поставить без mCrypt. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
RHCk Опубликовано: января 3, 2019 Жалоба Поделиться Опубликовано: января 3, 2019 3 часа назад, NickGri сказал: Или подскажите как поставить без mCrypt. Вы о чём? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
NickGri Опубликовано: января 3, 2019 Автор Жалоба Поделиться Опубликовано: января 3, 2019 2 часа назад, RHCk сказал: Вы о чём? Отключить проверку на наличие этого модуля Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
RHCk Опубликовано: января 4, 2019 Жалоба Поделиться Опубликовано: января 4, 2019 6 часов назад, NickGri сказал: Отключить проверку на наличие этого модуля Вы можете описать что вы хотите сделать и для чего? О какой проверке идёт речь? Как это относится к проблемам с установкой движка? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Nickbur Опубликовано: января 6, 2019 Жалоба Поделиться Опубликовано: января 6, 2019 В 03.01.2019 at 19:18, RHCk сказал: Вы о чём? В 03.01.2019 at 16:14, NickGri сказал: Или подскажите как поставить без mCrypt. В: install\cli_install.php удалить if (!function_exists('mcrypt_encrypt')) { $error = 'Warning: mCrypt extension needs to be loaded for OpenCart to work!'; } И в: install\controller\install\step_2.php удалить $data['text_mcrypt'] = $this->language->get('text_mcrypt'); ... $data['mcrypt_encrypt'] = function_exists('mcrypt_encrypt'); ... if (!function_exists('mcrypt_encrypt')) { $this->error['warning'] = $this->language->get('error_mcrypt'); } И по аналогии из view. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
RHCk Опубликовано: января 7, 2019 Жалоба Поделиться Опубликовано: января 7, 2019 9 часов назад, Nickbur сказал: ? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
NickGri Опубликовано: января 8, 2019 Автор Жалоба Поделиться Опубликовано: января 8, 2019 В 06.01.2019 at 17:38, Nickbur сказал: Спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
MikeMr Опубликовано: апреля 12, 2019 Жалоба Поделиться Опубликовано: апреля 12, 2019 Столкнулся с тойже проблемой: на PHP 7.2 не поддерживается mCrypt, его нужно менять на OpenSSL. Нашел на английском форуме пример: https://stackoverflow.com/questions/51160189/replace-mcrypt-encription-with-openssl-encription-for-opencart-cms === I'm currently changing over to 7.2 and are using the replacement below. I will remove the fallback to mcrypt later, it's just useful to be able to switch PHP versions. Also not you need to make sure you host has the sodium extension. It should be included as default in PHP 7.2, but some hosts are still not including it.There are other examples on the forums that use openssl. A search should find them. Code: Select all <?php final class Encryption { private $key; public function __construct($key) { $this->key = $key; } public function encrypt($value) { if (function_exists('sodium_crypto_secretbox')) { $nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); return strtr(base64_encode($nonce . sodium_crypto_secretbox($value, $nonce, hash('sha256', $this->key, true))), '+/=', '-_,'); } else { return strtr(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), $value, MCRYPT_MODE_ECB)), '+/=', '-_,'); } } public function decrypt($value) { if (function_exists('sodium_crypto_secretbox')) { $raw_value = base64_decode(strtr($value, '-_,', '+/=')); $nonce = substr($raw_value, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); return trim(sodium_crypto_secretbox_open(substr($raw_value, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES), $nonce, hash('sha256', $this->key, true))); } else { return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), base64_decode(strtr($value, '-_,', '+/=')), MCRYPT_MODE_ECB)); } } } ?> Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: августа 28, 2019 Жалоба Поделиться Опубликовано: августа 28, 2019 Взял новый код шифрования из 3.0 OpenCart system\library\encryption.php Скрытый текст <?php // * @copyright OPENCART.PRO 2011 - 2019. // * @forum http://forum.opencart.pro // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt final class Encryption { private $key; public function __construct($key) { $this->key = hash('sha256', $key, true); } public function encrypt($value) { if (!function_exists('mcrypt_encrypt')) { return strtr(base64_encode(openssl_encrypt($value, 'aes-128-cbc', $this->key)), '+/=', '-_,'); } else { return strtr(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), $value, MCRYPT_MODE_ECB)), '+/=', '-_,'); } } public function decrypt($value) { if (!function_exists('mcrypt_encrypt')) { return trim(openssl_decrypt(base64_decode(strtr($value, '-_,', '+/=')), 'aes-128-cbc', $this->key)); } else { return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), base64_decode(strtr($value, '-_,', '+/=')), MCRYPT_MODE_ECB)); } } } Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.