it-swarm.com.de

Die einzigen unterstützten Verschlüsselungscodes sind AES-128-CBC und AES-256-CBC mit den richtigen Schlüssellängen. Laravel 5.3

Ich habe eine neue, frische Kopie von Laravel 5.3 mit Composer installiert, aber ich bekomme diese Fehlermeldung:

Die einzigen unterstützten Verschlüsselungscodes sind AES-128-CBC und AES-256-CBC mit der richtige Schlüssellänge. Obwohl meine app.php-Datei im config-Verzeichnis angegeben ist
'cipher' => 'AES-128-CBC',

47
Emmanuel Mariki

Sie müssen .env in Ihrem Anwendungsordner haben und dann Folgendes ausführen:

$ php artisan key:generate

Wenn Sie .env copy from .env.example nicht haben:

$ cp .env.example .env
75

Führen Sie diese Befehle auf Ihrem Terminal aus: 

PHP Handwerker config: clear
dann
php handwerkskonfiguration: cache

18
Lee

Führen Sie php artisan key:generate aus. 

php artisan config:clear

Dann php artisan config:cache

Und die Dinge beginnen zu arbeiten!

12

Wenn Sie zum ersten Mal ein Laravel-Projekt auf diesem Computer ausführen, stellen Sie sicher, dass Sie über die erforderlichen Anforderungen ..__ verfügen. Öffnen Sie Ihr CMD/Terminal in Ihrem Projektverzeichnis oder 

cd to/your/project/dir

Geben Sie diesen Befehl erneut ein:

composer update

Ändern Sie Ihren .env.example in .env und nehmen Sie die erforderlichen Änderungen in dieser Datei vor, insbesondere in den Datenbankkonfigurationen, um einen Datenbankfehler zu vermeiden ..__ 

php artisan key:generate

Dadurch wird dieses Problem der AES-Chiffrierschlüssel jedes Mal gelöst, wenn ich ein Laravel-Projekt erstelle oder aus git klone.

8

Ok, das ist im Grunde schon beantwortet worden, aber ich habe ein paar Vorbehalte gefunden, die verstört oder verstopft waren, einer der beiden ...

Wie bereits gesagt, sollten Sie zunächst sicherstellen, dass Sie über eine gültige .env-Datei verfügen, die Sie im Terminal ausführen können, indem Sie die vorhandene .env.example-Datei als solche kopieren:

$ cp .env.example .env

Dann generieren Sie Ihren Anwendungsschlüssel 

$ php artisan key:generate

Wenn dies erledigt ist, öffnen Sie Ihre .env-Datei und stellen Sie sicher, dass die Zeile APP_KEY richtig aussieht - hierher kam meine Betroffenheit:

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

Sie werden feststellen, dass die Schlüssellänge falsch ist, da es aus irgendeinem unbekannten Grund (wahrscheinlich beim Ausführen des Schlüssels: mehrmals generieren) zwei base64=-Schlüssel enthalten. Wenn Sie eines entfernen, beheben Sie die Probleme, die ich hatte, und dies scheint ein Artisan/Laravel-Fehler zu sein.

Hoffen Sie, dass diese Antwort jedem hilft, der möglicherweise mit den gleichen Problemen oder einem nervenden Fehler zu kämpfen hat.

6
Rottingham

Folge diesen Schritten:

Schritt 1: Stellen Sie sicher, dass sich in Ihrer Anwendung die .env-Datei befindet. Wenn Sie diesen Befehl nicht ausführen, cp .env.example .env

Schritt 2: Führen Sie nun den folgenden Befehl (php artisan key:generate) aus, um einen Schlüssel zu generieren, der automatisch in der .env-Datei gespeichert wird.

Schritt 3: php artisan config:cache ausführen

Es wird alles reparieren.

4
PHP Worm...

in .env-Datei geben Sie diesen Schlüssel und Sie sind fertig

APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E

Funktioniert immer noch nicht? 

Wenn Sie von CLI aus arbeiten, starten Sie den Server neu, und das wird der Fall sein.

Wünschen Sie eine Erklärung?

ok, wie die Fehlermeldung sagt:

Die einzigen unterstützten Verschlüsselungscodes sind AES-128-CBC und AES-256-CBC mit der richtige Schlüssellänge.

Die Schlüssellänge für AES-128-CBC beträgt 16 Zeichen, z. B. ABCDEF123ERD456E

Die Schlüssellänge für AES-256-CBC beträgt 32 Zeichen, z. B. ABCDEF123ERD456EABCDEF123ERD456E

Stellen Sie sicher, dass in config/app.php die cipher auf die entsprechende Chiffre wie die beiden obigen gesetzt ist und der Schlüssel auf die .env-Datei APP_KEY-Variable zeigt. Meine App verfügt über die AES-256-CBC-Chiffre, daher habe ich ihr den 32-stelligen Schlüssel gegebenwie APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E und alles hat danach gut funktioniert.

1
Faiz Khan

Überprüfen Sie Ihre .env-Datei, wenn APP_KEY nicht festgelegt ist. Dies ist das Problem. Führen Sie nun php artisan key:generate und dann php artisan config:cache aus.

es wird ein APP_KEY Schlüssel in Ihrer .env-Datei gesetzt.

Wenn APP_KEY bereits gesetzt ist, führen Sie dieselben Befehle aus. Dieser Schlüssel wird aktualisiert.

0
Imad Ullah

Wenn Sie ein Laravel-Projekt mit dem Befehl composer create-project --prefer-dist laravel/laravel market neu erstellen und das neue Repo mit dem Befehl cp im Anwendungspfad bereitstellen, wird dieses Problem möglicherweise angezeigt. 

Ich benutze Laravel 5.4

[email protected]:~/market$ php artisan --version
Laravel Framework 5.4.33

Wenn Sie das Laravel-Projekt erstellen, können Sie die Protokolle sehen, die den Schlüssel wie folgt erstellen:

Autoload-Dateien generieren

Illuminate\Foundation\ComposerScripts :: postUpdate PHP-Handwerker optimieren Optimierten Klassenladeprogramm erstellen Die kompilierte Servicedatei wurde entfernt . PHP-Handwerksschlüssel: Generiere Anwendungsschlüssel [base64: exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/k =] erfolgreich gesetzt.

Standardmäßig ist der Schlüssel config in der Datei config/app.php wie folgt, er verwendet AES-256-CBC und der generierte Schlüssel wird beim Erstellen des Projekts in der Datei .env gespeichert. Wenn Sie einen Befehl wie cp -r ./* /var/www/market/ verwenden, wird die .env-Datei nicht in den Anwendungspfad verschoben.

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

Wenn ich meinen Bereitstellungsbefehl auf cp -r ./* ./.env /var/www/market/ ändere, ist dieses Problem behoben.

Sie können sich auch auf diesen github issue beziehen.

0
Kris Roofe

Wenn der handwerkliche Befehl nicht funktioniert und Sie dieselbe Fehlermeldung in der Befehlszeile erhalten, bedeutet dies, dass Composer keine guten Ergebnisse beim Abrufen aller Dateien erhalten hat. Sie sollten den Herstellerordner löschen und composer update erneut ausführen.

0

Eine weitere Sache, die Sie nur überprüfen müssen, ist, dass Ihre .env-Datei in der Gruppe www-data (oder httpd oder was auch immer Ihre Webserver-Gruppe ist) befindet und dass die Gruppe über Leseberechtigung verfügt.

Unter Linux sahen meine Berechtigungen folgendermaßen aus, als ich diese Fehlermeldung erhielt: -rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env Ich habe dann gerade die Leseberechtigung für alle entfernt und die Schreibberechtigung für group . chmod 640 .env data chown kevin:www-data .env Meine Berechtigungen sehen jetzt so aus: -rw-r----- 1 kevin www-data 516 Mar 16 09:35 .env

0
Kevin van Zyl