New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Function mcrypt_decrypt() is deprecated in PHP 7.1 #218

Open
vimruler opened this Issue Sep 4, 2017 · 5 comments

Comments

Projects
None yet
3 participants
@vimruler

vimruler commented Sep 4, 2017

Обновил OpenServer и решил включить использование PHP 7.1. Получил на 0.96 (в 97 проверил код - всё также и ошибка тоже будет) серию ошибок:

A PHP Error was encountered
Severity: 8192
Message: Function mcrypt_get_iv_size() is deprecated
Filename: libraries/Encrypt.php
Line Number: 291

A PHP Error was encountered
Severity: 8192
Message: Function mcrypt_decrypt() is deprecated
Filename: libraries/Encrypt.php
Line Number: 300

A PHP Error was encountered
Severity: 8192
Message: Function mcrypt_get_iv_size() is deprecated
Filename: libraries/Encrypt.php
Line Number: 273

A PHP Error was encountered
Severity: 8192
Message: Function mcrypt_create_iv() is deprecated
Filename: libraries/Encrypt.php
Line Number: 274

A PHP Error was encountered
Severity: 8192
Message: Function mcrypt_encrypt() is deprecated
Filename: libraries/Encrypt.php
Line Number: 275

@maxsite

This comment has been minimized.

Show comment
Hide comment
@maxsite

maxsite Sep 4, 2017

Owner

Нужно разбираться. Пока вот решение для CodeIgniter 3: benedmunds/CodeIgniter-Ion-Auth#1053

Owner

maxsite commented Sep 4, 2017

Нужно разбираться. Пока вот решение для CodeIgniter 3: benedmunds/CodeIgniter-Ion-Auth#1053

@vimruler

This comment has been minimized.

Show comment
Hide comment
@vimruler

vimruler Sep 4, 2017

Да, нужно изучить вопрос. Так то да, по ссылке есть решение на основе функции random_bytes. Но первое что приходит в голову - а как будет проходить работа с паролями? Ведь если сперва их создали с одной функцией и сохранили в базе хеш, а потом решили проверить с другой, то может получится "Ой".

vimruler commented Sep 4, 2017

Да, нужно изучить вопрос. Так то да, по ссылке есть решение на основе функции random_bytes. Но первое что приходит в голову - а как будет проходить работа с паролями? Ведь если сперва их создали с одной функцией и сохранили в базе хеш, а потом решили проверить с другой, то может получится "Ой".

@maxsite

This comment has been minimized.

Show comment
Hide comment
@maxsite

maxsite Oct 4, 2017

Owner

Похоже, что нет возможности нормально запустить MaxSite CMS на php 7.1. Функции шифрования объявлены как deprecated, а в php 7.2 будут вовсе удалены. Так что единственный путь — это пока отказаться от использования новых версий PHP.

Решение, которое я вижу — это переход на CodeIgniter 3.x (или даже будущую 4-ку), где уже можно выбрать другую библиотеку шифрования. Но, как это скажется на существующих паролях, пока не ясно. Скорее всего придется их сбрасывать и заново создавать для каждого пользователя. :-(

Owner

maxsite commented Oct 4, 2017

Похоже, что нет возможности нормально запустить MaxSite CMS на php 7.1. Функции шифрования объявлены как deprecated, а в php 7.2 будут вовсе удалены. Так что единственный путь — это пока отказаться от использования новых версий PHP.

Решение, которое я вижу — это переход на CodeIgniter 3.x (или даже будущую 4-ку), где уже можно выбрать другую библиотеку шифрования. Но, как это скажется на существующих паролях, пока не ясно. Скорее всего придется их сбрасывать и заново создавать для каждого пользователя. :-(

@maxsite maxsite added the Ошибка label Oct 4, 2017

@maxsite maxsite self-assigned this Oct 4, 2017

@Fafofu

This comment has been minimized.

Show comment
Hide comment
@Fafofu

Fafofu Oct 30, 2017

Ндяя... вот тут предлагают какое-то решение...

This error occurs because you probably have something other than AES-256-CBC as your cipher in your config/app.php file that depends on the mcrypt extension. Perhaps you are using MCRYPT_RIJNDAEL_256 or MCRYPT_RIJNDAEL_128?

The best thing you can do without a full-blown Laravel upgrade is install the legacy encrypter and use it to update all your encrypted data to use the AES-256-CBC cipher which has been the default cipher since Laravel 5.1, I believe. Once you do this, you should be able to use PHP 7.1 for your Laravel application.

https://stackoverflow.com/questions/41031076/php7-1-and-laravel-5-3-function-mcrypt-get-iv-size-is-deprecated

Fafofu commented Oct 30, 2017

Ндяя... вот тут предлагают какое-то решение...

This error occurs because you probably have something other than AES-256-CBC as your cipher in your config/app.php file that depends on the mcrypt extension. Perhaps you are using MCRYPT_RIJNDAEL_256 or MCRYPT_RIJNDAEL_128?

The best thing you can do without a full-blown Laravel upgrade is install the legacy encrypter and use it to update all your encrypted data to use the AES-256-CBC cipher which has been the default cipher since Laravel 5.1, I believe. Once you do this, you should be able to use PHP 7.1 for your Laravel application.

https://stackoverflow.com/questions/41031076/php7-1-and-laravel-5-3-function-mcrypt-get-iv-size-is-deprecated

@maxsite

This comment has been minimized.

Show comment
Hide comment
@maxsite

maxsite Oct 30, 2017

Owner

Не очень похоже на решение...

Owner

maxsite commented Oct 30, 2017

Не очень похоже на решение...

maxsite added a commit that referenced this issue Nov 3, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment