Php 拉威尔抛出了一句话;找不到支持的加密程序";消息
在laravel 5.2中 简单地说,这段代码非常有效:Php 拉威尔抛出了一句话;找不到支持的加密程序";消息,php,laravel,ubuntu,encryption,laravel-artisan,Php,Laravel,Ubuntu,Encryption,Laravel Artisan,在laravel 5.2中 简单地说,这段代码非常有效: Route::get('/', function () { if(Auth::guest()) { return Redirect::to('login'); } else { return view('index'); } }); 此代码不工作,并抛出消息“找不到支持的加密程序。密码和/或密钥长度无效。” 即使我测试了默认的artisan make:auth of laravel,它仍然显示相同的消息。 我不认
Route::get('/', function () {
if(Auth::guest())
{
return Redirect::to('login');
}
else
{
return view('index');
}
});
此代码不工作,并抛出消息“找不到支持的加密程序。密码和/或密钥长度无效。”
即使我测试了默认的artisan make:auth of laravel,它仍然显示相同的消息。
我不认为这是一件关键的事情,因为我可以使用第一种方法登录,但不能使用中间件。
救命啊
更新:
该密钥在.env文件和config/app.php文件中都是相同的32个字符的密钥,“cipher”=>“AES-256-CBC”
更新2在得到帮助并检查了illumb/Encryption/EncryptionServiceProvider.php之后,我发现:
$config = $app->make('config')->get('app');
$key = $config['key'];
$cipher = $config['cipher'];
当我尝试回显$cipher值时,我发现它是'AES-256-CBC',就像在配置文件中一样,但是$key变量为null。那么,为什么它不从配置文件或.env文件中读取密钥呢?在App.php文件中,有以下内容:
'key' => env('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
应该是哪一个
'key' => env('APP_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
或
在.env文件中,是否设置了
APP_KEY
var?是的,在.env文件和config/APP.php文件中设置了相同的32个字符的密钥,并且“cipher”=>“AES-256-CBC”使用phpinfo()
创建一个页面,您是否看到mcrypt
部分?mcrypt支持启用mcrypt\u过滤器支持启用在illighted\Encryption\EncryptionServiceProvider
尝试dd
加密$key
和$cipher
变量,并确保它们是您期望的。或“key”=>env('APP\u key')。这样,它将从.env获取值
'key' => env('APP_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
'key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'