98 votes

Les seuls ciphers pris en charge sont AES-128-CBC et AES-256-CBC avec des longueurs de clé correctes. laravel 5.3

J'ai installé une nouvelle copie de Laravel 5.3 à l'aide de composer, mais j'obtiens cette erreur :

Les seuls ciphers pris en charge sont AES-128-CBC et AES-256-CBC avec les longueur de clé correcte. Même si mon fichier app.php dans le répertoire de configuration spécifie
cipher " => " AES-128-CBC ".

0 votes

Reportez-vous à ce [problème] github[1].

0 votes

J'ai ce problème et c'est totalement aléatoire... 90% de mes requêtes passent sans aucune erreur, puis je reçois un HTTP 500 avec ceci dans les journaux.

0 votes

S'il s'agit d'une nouvelle installation, créez le lien symbolique du stockage dans le répertoire public avec cette commande : php artisan storage:link

143voto

Mugoma J. Okomba Points 1520

Vous devez avoir .env sur votre dossier d'application puis exécutez :

$ php artisan key:generate

Si vous n'avez pas .env copie de .env.exemple :

$ cp .env.example .env

2 votes

J'ai également ce problème sur une nouvelle installation. J'ai lancé le générateur de clés, effacé et remis en cache. J'ai vérifié le fichier .env et la clé a été insérée avec succès mais l'erreur persiste.

0 votes

@Rottingham, dans votre config/app.php, qu'est-ce que vous avez comme 'key' et 'cipher' ?

2 votes

J'avais la même chose, AES-256-CBC comme ciper, et la CLE était env('APP_KEY') ; j'ai découvert que mon problème était que key:generate concaténait la clef dans le fichier .env au lieu de le remplacer.

61voto

Cengkuru Michael Points 1980

Exécuter php artisan key:generate .

Faites php artisan config:clear ,

Puis php artisan config:cache

Et les choses vont commencer à fonctionner !

2 votes

J'ai essayé et cela ne fonctionne toujours pas, la même erreur est affichée comme avant.

0 votes

Donc exemple complet

26voto

Lee Points 309

Exécutez cette commande dans votre terminal :

php artisan config:clear
puis
php artisan config:cache

2 votes

Juste comme une P.S. ou FYI - l'exécution de config:cache exécute automatiquement config:clear comme vous le voyez dans le terminal lorsque vous exécutez config:cache

0 votes

J'avais un fichier .env et une valeur APP_KEY, cela fonctionne dans mon cas. Merci.

12voto

Rottingham Points 1843

Ok, on a déjà répondu à cette question, mais j'ai trouvé quelques réserves qui m'ont consterné, ou constipé, l'un de ces deux...

Tout d'abord, comme cela a déjà été dit, vous devez vous assurer que vous disposez d'un permis de conduire valide. .env que vous pouvez réaliser dans le terminal en copiant le fichier existant .env.example comme tel :

$ cp .env.example .env

Ensuite, générez votre clé d'application

$ php artisan key:generate

Une fois que c'est fait, assurez-vous d'ouvrir votre fichier .env et vérifiez que la ligne APP_KEY est correcte - c'est de là que vient ma consternation :

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

Vous remarquerez que la longueur de la clé est incorrecte, pour une raison inconnue (probablement à cause de l'exécution de key:generate plusieurs fois), elle a deux base64= clés là-dedans. La suppression de l'une d'entre elles a permis de résoudre les problèmes que j'avais et il semble que ce soit un bug d'Artisan/Laravel.

J'espère que cette réponse aidera tous ceux qui sont confrontés aux mêmes problèmes ou à un bug gênant.

0 votes

Je rencontre aussi ce problème, mais il n'apparaît que de temps en temps. La clé est correcte, donc je suppose qu'il y a un autre problème. J'ai effectué la mise en cache de la configuration, suggérée par Lee, et je vais voir comment cela se passe. Pour référence, j'ai tout un tas d'autres jetons d'accès dans le fichier, donc l'un d'entre eux est un jeton d'accès. pourrait être à l'origine d'un problème. Cependant, si c'était le cas, je m'attendrais à ce que cela se produise à chaque fois. (L5.4)

1 votes

Ceci, en plus de faire php artisan config:clear puis php artisan config:cache a réparé mon installation.

0 votes

@MikeRockétt Il y a une discussion ici : github.com/laravel/framework/issues/9080 concernant de multiples appels ajax tirant la app_key en même temps et le fichier .env étant verrouillé dès le premier appel. La solution recommandée est de ne pas appeler le fichier .env en production mais d'utiliser le cache ?

10voto

Ashfak Md Shibli Points 130

Si vous exécutez un projet Laravel pour la première fois dans cette machine, assurez-vous d'avoir les éléments nécessaires à l'exécution du projet. exigences . Ouvrez votre CMD/Terminal dans le répertoire de votre projet ou

cd to/your/project/dir

Donnez ce commandement à nouveau :

composer update

Changez votre .env.example à .env et apportez les modifications nécessaires dans ce fichier, en particulier les configurations de la base de données, pour éviter l'erreur db. Puis

php artisan key:generate

Cela résout le problème de la longueur de la clé de chiffrement AES chaque fois que je crée un projet Laravel ou que je le clone depuis git.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X