Recommended Posts

Добрый день.

Подскажите где взять 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.

Поделиться сообщением


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

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

Поделиться сообщением


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

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

 

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

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

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


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

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