唯一支持的密码是 AES-128-CBC 和 AES-256-CBC,密钥长度正确

我使用作曲家安装了一个新的 Laravel 5.3副本,但是我得到了这个错误:

The only supported ciphers are AES-128-CBC and AES-256-CBC with the 即使我的 app.php 文件在 config 目录中指定了
“密码”= > “ AES-128-CBC”

143750 次浏览

You need to have 。 env on your appication folder then run:

$ php artisan key:generate

如果你没有 .env.example。 env拷贝:

$ cp .env.example .env

在终端上运行以下命令:

手工配置: 清除
那么
缓存

好了,这基本上已经得到了回答,但是我发现了一些令人惊愕或者便秘的警告,其中之一..。

首先,如前所述,您应该确保有一个有效的 .env文件,您可以通过复制现有的 .env.example文件在终端中完成:

$ cp .env.example .env

然后,生成应用程序 Key

$ php artisan key:generate

完成此操作后,请确保打开您的。Env 文件,并确保 APP _ KEY 行看起来正确——这就是我惊慌的来源:

APP_KEY=base64:MsUJo+qAhIVGPx52r1mbxCYn5YbWtCx8FQ7pTaHEvRo=base64:Ign7MpdXw4FMI5ai7SXXiU2vbraqhyEK1NniKPNJKGY=

您会注意到密钥长度是错误的,它由于某种未知的原因(可能是由于运行 key: generatemultitimes)有两个 base64=密钥。删除一个是修复我的问题,这似乎是一个工匠/Laravel 错误。

希望这个答案可以帮助任何人谁可能与同样的问题或恼人的错误挣扎。

另一件需要检查的事情是。Env 文件位于 www-data 组(或 httpd 或任何 Web 服务器组)中,该组具有读权限。

在 linux 上,当我得到这个错误时,我的权限看起来是这样的: - rw-rw-r-1 Kevin Kevin 618 Mar 1609:32. env 然后我删除了所有用户的读权限和组的写权限。 Chmod 640. env 然后我将组更改为 www-data Chown kevin: www-data. env 我的权限现在看起来是这样的: - rw-r ——-1 kevin www-data 516 Mar 1609:35. env

如果您是第一次在那台机器上运行 Laravel 项目,请确保您拥有必要的 规定。 在项目目录中打开 CMD/终端,或者

cd to/your/project/dir

再次下达这个命令:

composer update

.env.example更改为 .env,并对该文件进行必要的更改,特别是数据库配置,以避免出现数据库错误。 然后

php artisan key:generate

This solves this AES cipher key length problem every time I create a Laravel project or clone it from git.

如果 artian 命令不起作用,并且您在命令行中得到了相同的错误,这意味着作曲家没有很好地获得所有文件,您应该删除供应商文件夹并再次运行 composer update

in .env file give this key and you are done

APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E

还是不行吗?

如果您从 cli 工作,重新启动服务器,它将。

要解释吗?

ok, as the error message says:

唯一支持的密码是 AES-128-CBC 和 AES-256-CBC 正确的钥匙长度。

AES-128-CBC的键长为16个字符,例如 ABCDEF123ERD456E

AES-256-CBC的键长为32个字符,例如 ABCDEF123ERD456EABCDEF123ERD456E

确保在 config/app.php中,cipher被设置为适当的密码,就像上面两个一样,密钥指向 .env文件 APP_KEY变量。我的应用程序有 AES-256-CBC密码集,所以我给它32个字符的关键 like APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E and everything worked just fine after that.

如果您使用诸如 composer create-project --prefer-dist laravel/laravel market之类的命令创建一个 laravel 项目,并使用 cp 命令将新的 repo 部署到应用程序路径,则可能会遇到这个问题。

我用的是幼虫5.4

roofe@www:~/market$ php artisan --version
Laravel Framework 5.4.33

当您创建 laravel 项目时,您可以看到创建密钥的日志,如下所示:

生成自动加载文件

照明基金会作曲脚本: : postUpdate 生成优化的类装入器已编译的服务文件已被删除。 Php artian key: 成功生成 Application key [ base64: exxxxxxxxxxxxxxxxxxxxxxxx/k = ] set。

默认情况下,config/app.php 中的密钥配置如下,它使用 AES-256-CBC,并且在创建项目时生成的密钥存储在 .env文件中。如果使用类似 cp -r ./* /var/www/market/的命令,则 .env文件将不会移动到应用程序路径。

/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| This key is used by the Illuminate encrypter service and should be set
| to a random, 32 character string, otherwise these encrypted strings
| will not be safe. Please do this before deploying an application!
|
*/


'key' => env('APP_KEY'),


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

当我将部署命令更改为 cp -r ./* ./.env /var/www/market/时,这个问题就消失了。

您还可以引用这个 github 问题

遵循以下步骤:

步骤1: 确保应用程序中有. env 文件

步骤2: 现在运行以下命令(php artisan key:generate)生成一个密钥,它将被保存在。自动的 env 文件。

步骤3: 如果要缓存配置或 php artisan config:clear,请运行 php artisan config:cache

希望能解决所有问题。

Run php artisan key:generate.

Do php artisan config:clear,

然后是 php artisan config:cache

一切都会好起来的!

如果没有设置 APP _ KEY,请检查.env 文件, 现在运行 php artisan key:generate 然后运行 php artisan config:cache

它将在.env 文件中设置一个 APP _ KEY键。

If APP_KEY is already set run the same commands. It will update this key.

我也有这个问题。 我使用 echo $APP_KEY检查我的环境变量值是否为“ APP _ KEY” 对我来说,它是“流明”,这是为另一个流明项目设置,这就是为什么它不工作。

我使用 export APP_KEY=[you app_key value from .env file]更新了“ APP _ KEY”值,并清除了缓存 php artisan config:cache,它对我有效。

对于 laravel 版本5.4 PHP 7.4

  1. 运行这个命令

php artisan key:generate

这将为 .env文件中的 APP_KEY=设置一个值

就像这样: APP_KEY=base64:trp5LQ9/TW85+17o0T7F0bZ/Ca1J9cIMgvyNIYl0k/g=

  1. 使用以下命令清除缓存以使所有内容重新工作:

php artisan config:clear

那么 php artisan config:cache

希望这个能帮上忙。

Just remove APP_KEY value from .env file and run this commands again :

php artisan key:generate
php artisan config:cache

成交。

工匠的命令是为了我

运行 php artisan key:generate

php artisan config:clear,

然后是 php artisan config:cache

晚点再谢我!