Le uniche crittografie supportate sono AES-128-CBC e AES-256-CBC con le chiavi corrette. laravel 5.3

Ho installato una nuova copia di laravel 5.3 usando il compositore ma continuo a ricevere questo errore:

Le uniche crittografie supportate sono AES-128-CBC e AES-256-CBC con le chiavi corrette. Anche se il mio file app.php nella directory di configurazione specifica
‘cipher’ => ‘AES-128-CBC’,

Devi avere .env sulla tua cartella appication quindi eseguire:

$ php artisan key:generate 

Se non hai una copia di .env da .env.example :

 $ cp .env.example .env 

Esegui questi comandi sul tuo terminale:

php artisan config: chiaro
poi
php artisan config: cache

Se stai eseguendo un progetto Laravel per la prima volta in quella macchina, assicurati di avere i requisiti necessari. Apri il tuo CMD / terminale nella directory del tuo progetto o

 cd to/your/project/dir 

Dare nuovamente questo comando:

 composer update 

Cambia il tuo .env.example in .env e apporta le modifiche necessarie in quel file, specialmente le configurazioni del database per evitare l’errore db. Poi

 php artisan key:generate 

Questo risolve questo problema di lunghezza della chiave di cifratura AES ogni volta che creo un progetto Laravel o lo cloniamo da git.

Ok, a questo è già stata data una risposta, ma ho trovato un paio di avvertimenti che erano stati consternati, o stitico, uno di quei due …

Innanzitutto, come già detto, dovresti assicurarti di avere un file .env valido che puoi eseguire nel terminale copiando il file .env.example esistente in quanto tale:

$ cp .env.example .env

Quindi, genera la chiave dell’applicazione

$ php artisan key:generate

Una volta eseguita questa operazione, assicurati di aprire il tuo file .env e assicurati che la riga APP_KEY appaia corretta: è da lì che è arrivata la mia costernazione:

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

Noterai che la lunghezza della chiave è sbagliata, per qualche motivo sconosciuto (probabilmente dalla chiave in esecuzione: generare più volte) ha due chiavi base64= . Rimozione di uno è la correzione dei problemi che stavo avendo e questo sembra essere un bug Artisan / Laravel.

Spero che questa risposta aiuti chiunque stia lottando con gli stessi problemi o fastidiosi bug.

Segui questi passi:

Passaggio 1: assicurati di avere il file .env nella tua applicazione. Se non esegui questo comando cp .env.example .env

Passo 2: Ora esegui il seguente comando ( php artisan key:generate ) per generare una chiave e verrà salvato automaticamente nel file .env.

Passaggio 3: Esegui php artisan config:cache

Risolverà tutto.

Esegui php artisan key:generate .

Do php artisan config:clear ,

Quindi php artisan config:cache

E le cose inizieranno a funzionare!

nel file .env questa chiave e il gioco è fatto

 APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E 

Continua a non funzionare?

Se si sta lavorando da cli, riavviare il server e lo farà.

Vuoi una spiegazione?

ok, come dice il messaggio di errore:

Le uniche crittografie supportate sono AES-128-CBC e AES-256-CBC con le chiavi corrette.

La lunghezza della chiave per AES-128-CBC è di 16 caratteri, ad es. ABCDEF123ERD456E

La lunghezza della chiave per AES-256-CBC è di 32 caratteri, ad es. ABCDEF123ERD456EABCDEF123ERD456E

Assicurati che in config/app.php la cipher sia impostata sulla cifra appropriata come i due precedenti e che la chiave punta alla variabile .env file APP_KEY . La mia app ha il set di crittografia AES-256-CBC , quindi gli ho dato la chiave di 32 caratteri come APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E e tutto ha funzionato bene dopo.

Un’altra cosa da verificare è che il tuo file .env si trova nel gruppo www-data (o httpd o qualunque sia il tuo gruppo di server web) e che il gruppo abbia i permessi di lettura.

Su Linux le mie autorizzazioni apparivano come questa quando ho ricevuto questo errore: -rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env Ho quindi rimosso il permesso di lettura per tutti e rimosso il permesso di scrittura per il gruppo. chmod 640 .env Poi ho cambiato il gruppo in www-data chown kevin:www-data .env mie autorizzazioni ora assomigliano a questa: -rw-r----- 1 kevin www-data 516 Mar 16 09:35 .env

Se il comando artisan non funziona e si ottiene lo stesso errore nella riga di comando, ciò significa che il compositore non ha svolto un buon lavoro nell’ottenere tutti i file, è necessario eliminare la cartella del fornitore ed eseguire nuovamente l’ composer update .

Se crei di recente un progetto laravel con comando come composer create-project --prefer-dist laravel/laravel market e distribuisci il nuovo repository nel percorso dell’applicazione con il comando cp potresti ottenere questo problema.

Io uso laravel 5.4

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

Quando crei il progetto laravel, puoi vedere i log che creano la chiave in questo modo:

Generazione di file autoload

Illuminate \ Foundation \ ComposerScripts :: postUpdate php artisan optimize Generazione del caricatore di classi ottimizzato Il file dei servizi compilati è stato rimosso. php artisan key: genera il tasto Application [base64: exxxxxxxxxxxxxxxxxxxxxxxxxxxxxx / k =] impostato correttamente.

Di default la config chiave in config / app.php è la seguente, usa AES-256-CBC e la chiave generata quando si crea il progetto è memorizzata nel file .env . Se usi comandi come cp -r ./* /var/www/market/ il file .env non verrà spostato nel percorso dell’applicazione.

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

Quando eseguo il comando di deploy su cp -r ./* ./.env /var/www/market/ , questo problema è scomparso.

Puoi anche fare riferimento a questo problema github.