Показанный код в вашем вопросе кажется нестандартным, то есть не основным кодом CakePHP, так что это больше похоже на PHP.
Mcrypt устарел, но все еще доступен в PHP 7.1, он был толькоудалено с PHP 7.2.Mcrypt также можно использовать с PHP 7.2+, вам просто нужно установить его вручную, так как перенесено в PECL , см., Например, Проблемав установке php7.2-mcrypt .Вы также можете использовать полифилл как phpseclib / mcrypt_compat .Таким образом, вы должны иметь возможность продолжать использовать Mcrypt для расшифровки и переносить данные на любое шифрование, которое вам нравится.
Кроме того, как правило, должна быть также возможность дешифрования данных с использованием OpenSSL, хотя, похоже, существуют ошибки, связанные с нулемзаполнение, см. например Расшифруйте mcrypt с помощью openssl .Вот базовый пример:
$data = openssl_decrypt(
base64_decode($encoded),
'des-ede3-cbc',
Configure::read('CakeMix.cryptKey'),
OPENSSL_RAW_DATA | OPENSSL_NO_PADDING,
base64_decode($iv)
);
Существует довольно много тем о замене Mcrypt на OpenSSL, которые вы, возможно, захотите посмотреть для получения дополнительной информации.