Programing

지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다.

crosscheck 2020. 12. 28. 21:48
반응형

지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다. 라 라벨 5.3


composer를 사용하여 laravel 5.3의 새 복사본을 설치했지만이 오류가 계속 발생합니다.

지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다. 구성 디렉토리의 내 app.php 파일이
'cipher'=> 'AES-128-CBC'를 지정하더라도 ,


appication 폴더에 .env 가 있어야하며 다음을 실행해야합니다.

$ php artisan key:generate

.env.example 에서 .env 사본 이없는 경우 :

$ cp .env.example .env

터미널에서 다음 명령을 실행하십시오.

php artisan config : clear
then
php artisan config : cache


을 실행 php artisan key:generate합니다.

수행 php artisan config:clear,

그때 php artisan config:cache

그리고 일이 시작됩니다!


해당 시스템에서 처음으로 Laravel 프로젝트를 실행하는 경우 필요한 요구 사항 이 있는지 확인하십시오 . 프로젝트 디렉토리에서 CMD / 터미널을 열거 나

cd to/your/project/dir

이 명령을 다시 제공하십시오.

composer update

당신의 변화 .env.example하는 .env, 특히 데이터베이스 구성은 DB 오류를 방지하기 위해 해당 파일에 필요한 사항을 변경합니다. 그때

php artisan key:generate

이렇게하면 Laravel 프로젝트를 만들거나 git에서 복제 할 때마다 AES 암호 키 길이 문제가 해결됩니다.


좋아, 이것은 기본적으로 이미 답변을 받았지만 그 두 가지 중 하나에 대해 변비가 있거나 변비가 있었던 몇 가지 경고를 찾았습니다.

먼저 이미 말했듯 .env이 기존 .env.example파일을 다음과 같이 복사하여 터미널에서 수행 할 수 있는 유효한 파일이 있는지 확인해야합니다 .

$ cp .env.example .env

그런 다음 애플리케이션 키를 생성하십시오.

$ php artisan key:generate

이 작업이 완료되면 .env 파일을 열고 APP_KEY 행이 올바른지 확인하십시오. 이것이 내 경악의 출처입니다.

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

키 길이가 잘못되었음을 알 수 있습니다. 알 수없는 이유로 (아마 key : generate를 여러 번 실행 base64=하여) 거기에 두 개의 키가 있습니다. 하나를 제거하는 것은 내가 가지고 있던 문제를 해결하는 것이며 이것은 Artisan / Laravel 버그로 보입니다.

이 답변이 동일한 문제 또는 성가신 버그로 어려움을 겪고있는 모든 사람에게 도움이되기를 바랍니다.


이 단계를 따르세요:

1 단계 : 애플리케이션에 .env 파일이 있는지 확인합니다. cp .env.example .env

2 단계 : 이제 다음 명령 ( php artisan key:generate)을 실행 하여 키를 생성하면 자동으로 .env 파일에 저장됩니다.

3 단계 : 실행 php artisan config:cache

그것은 모든 것을 고칠 것입니다.


.env파일이 키를 제공하면 모든 작업이 완료된다

APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E

그래도 작동이 안되는?

CLI에서 작업하는 경우 서버를 재부팅하면됩니다.

설명을 원하십니까?

좋습니다. 오류 메시지에 다음과 같이 표시됩니다.

지원되는 유일한 암호는 키 길이가 올바른 AES-128-CBC 및 AES-256-CBC입니다.

의 키 길이 AES-128-CBC는 16 자입니다. 예 : ABCDEF123ERD456E

에 대한 키 길이 AES-256-CBC는 32 자입니다 (예 : ABCDEF123ERD456EABCDEF123ERD456E).

확인에 확인 config/app.phpcipher위의 두 같은 적절한 암호로 설정되고 키가 가리키는 .env파일 APP_KEY변수입니다. 내 앱에는 AES-256-CBC암호 세트가 있으므로 32 자 키를 제공 APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E했고 그 후에는 모든 것이 잘 작동했습니다.


APP_KEY 가 설정되지 않은 경우 .env 파일을 확인하십시오 . 문제입니다. 이제 실행 php artisan key:generate하고 실행하십시오.php artisan config:cache

.env 파일에 APP_KEY 키를 설정 합니다.

경우 APP_KEY이 이미 설정되어 같은 명령을 실행합니다. 이 키를 업데이트합니다.


확인해야 할 또 다른 사항은 .env 파일이 www-data 그룹 (또는 httpd 또는 웹 서버 그룹이 무엇이든)에 있고 그룹에 읽기 권한이 있는지 확인합니다.

Linux에서이 오류가 발생했을 때 내 권한은 다음과 같이 보였습니다. -rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env 그런 다음 모두에 대한 읽기 권한을 제거하고 그룹에 대한 쓰기 권한을 제거했습니다. chmod 640 .env 그런 다음 그룹을 www-data로 변경했습니다. chown kevin:www-data .env 이제 권한은 다음과 같습니다. -rw-r----- 1 kevin www-data 516 Mar 16 09:35 .env


artisan 명령이 작동하지 않고 명령 줄에서 동일한 오류가 발생하면 composer가 모든 파일을 제대로 가져 오지 못했음을 의미 composer update합니다. 공급 업체 폴더를 삭제하고 다시 실행 해야합니다.


If you newly create a laravel project with command like composer create-project --prefer-dist laravel/laravel market and deploy the new repo to the application path with cp command you may get this issue.

I use laravel 5.4

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

When you create the laravel project, you can see the the logs that create the key like this:

Generating autoload files

Illuminate\Foundation\ComposerScripts::postUpdate php artisan optimize Generating optimized class loader The compiled services file has been removed. php artisan key:generate Application key [base64:exxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/k=] set successfully.

By default the key config in the config/app.php is as follows, it use AES-256-CBC and the generated key when creating the project is stored in the .env file. If you use command like cp -r ./* /var/www/market/ the .env file will not be moved to the application path.

/*
|--------------------------------------------------------------------------
| 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',

When I chage my deploy command to cp -r ./* ./.env /var/www/market/, this issue gone.

You also can refer to this github issue.

ReferenceURL : https://stackoverflow.com/questions/39693312/the-only-supported-ciphers-are-aes-128-cbc-and-aes-256-cbc-with-the-correct-key

반응형