gpt4 book ai didi

php - 功能 mcrypt_get_iv_size() 在 Laravel 5.5 和 php 7.1.11 上被弃用

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:13 25 4
gpt4 key购买 nike

我已经将 laravel 5.3 升级到 laravel 5.5,我正在使用 php 7.1.11

升级时出现错误

ErrorException (E_ERROR) 函数 mcrypt_get_iv_size() 已弃用

config\app 我有

'cipher' => 'AES-256-CBC'

也尝试添加

error_reporting(E_ALL ^ E_DEPRECATED);

但仍然出错。

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, self::$skey, $text, MCRYPT_MODE_ECB, $iv);

这是我正在使用的代码。

最佳答案

Laravel 已经删除了 5.3 中的所有 mcrypt 代码(自 Laravel 5.1 以来默认情况下不使用它)所以我假设这是 OP 自己的代码。

理想情况下,这段代码应该迁移到 OpenSSL,但在此之前它可以像这样包装:

$olderrorReporting = error_reporting();
error_reporting($olderrorReporting&(~E_DEPRECATED));
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, self::$skey, $text, MCRYPT_MODE_ECB, $iv);
error_reporting($olderrorReporting)

上述解决方案通常可用于“抑制”已弃用的警告。

旁注:$a ^ $b 在 PHP 中是 XOR 所以 error_reporting(E_ALL ^ E_DEPRECATED) 基本上等同于 error_reporting(E_ALL)

关于php - 功能 mcrypt_get_iv_size() 在 Laravel 5.5 和 php 7.1.11 上被弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47324443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com