mCrypt установка на php 7.2 x64


Рекомендуемые сообщения

Добрый день.

Подскажите где взять mCrypt DLL под php 7.2 x64 (windows)

 

на оф сайте 

Цитата

Расширение mcrypt не развивалось уже почти десять лет, а также было крайне сложным в использовании. Оно было объявлено устаревшим в пользу OpenSSL. Оно будет удалено из ядра PHP и перемещено в PECL в PHP 7.2.

 

Или подскажите как поставить без mCrypt.

 

 

Ссылка на комментарий
Поделиться на других сайтах

6 часов назад, NickGri сказал:

Отключить проверку на наличие этого модуля

Вы можете описать что вы хотите сделать и для чего?

О какой проверке идёт речь?

Как это относится к проблемам с установкой движка?

Ссылка на комментарий
Поделиться на других сайтах

В 03.01.2019 at 19:18, RHCk сказал:

Вы о чём?

:facepalm:

 

 

В 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.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...

Столкнулся с тойже проблемой: на 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));
		}
	}
}
?>
Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...

Взял новый код шифрования из 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));
		}
	}
}

 

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Показать вместо этого как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Нельзя вставлять изображения напрямую. Загрузите или вставьте изображения по URL.

 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу