configuration - Los únicos cifrados admitidos son AES-128-CBC y AES-256-CBC con las longitudes de clave correctas. laravel 5.3
installation laravel-5.3 (11)
Ejecute
php artisan key:generate
.
Hacer
php artisan config:clear
,
Entonces
php artisan config:cache
¡Y las cosas comenzarán a funcionar!
Instalé una nueva copia nueva de laravel 5.3 usando composer pero sigo recibiendo este error:
Los únicos cifrados admitidos son AES-128-CBC y AES-256-CBC con las longitudes de clave correctas. Aunque mi archivo app.php en el directorio config especifique
''cipher'' => ''AES-128-CBC'',
Ejecute estos comandos en su terminal:
php artisan config: clear
entonces
php artisan config: caché
Necesita tener .env en su carpeta de aplicaciones y luego ejecutar:
$ php artisan key:generate
Si no tiene una copia .env del ejemplo .env :
$ cp .env.example .env
Ok, esto básicamente ya ha sido respondido, pero encontré un par de advertencias que habían sido consternadas o estreñidas, una de esas dos ...
Primero, como ya se ha dicho, debe asegurarse de tener un archivo
.env
válido que pueda lograr en el terminal copiando el archivo
.env.example
existente como tal:
$ cp .env.example .env
Luego, genere su clave de aplicación
$ php artisan key:generate
Una vez hecho esto, asegúrate de abrir tu archivo .env y asegúrate de que la línea APP_KEY se vea correcta; aquí es de donde vino mi consternación:
APP_KEY=base64:MsUJo+qAhIVGPx52r1mbxCYn5YbWtCx8FQ7pTaHEvRo=base64:Ign7MpdXw4FMI5ai7SXXiU2vbraqhyEK1NniKPNJKGY=
Notarás que la longitud de la clave es incorrecta, por alguna razón desconocida (probablemente al ejecutar la clave: generar varias veces) tiene dos claves
base64=
allí.
Eliminar uno es la solución a los problemas que estaba teniendo y esto parece ser un error de Artisan / Laravel.
Espero que esta respuesta ayude a cualquiera que tenga problemas con los mismos problemas o errores molestos.
Otra cosa que debe verificar es que su archivo .env está en el grupo de datos www (o httpd o lo que sea que sea su grupo de servidores web) y que el grupo tiene permiso de lectura.
En Linux, mis permisos se veían así cuando recibí este error:
-rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env
Luego
-rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env
permiso de lectura para todos y
-rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env
permiso de escritura para el grupo.
chmod 640 .env
Luego cambié el grupo a www-data
chown kevin:www-data .env
Mis permisos ahora se ven así:
-rw-r----- 1 kevin www-data 516 Mar 16 09:35 .env
Si acaba de crear un proyecto laravel con un comando como
composer create-project --prefer-dist laravel/laravel market
e implementa el nuevo repositorio en la ruta de la aplicación con el comando cp, puede obtener este problema.
Yo uso laravel 5.4
roofe@www:~/market$ php artisan --version
Laravel Framework 5.4.33
Cuando crea el proyecto laravel, puede ver los registros que crean la clave de esta manera:
Generando archivos de carga automática
Illuminate / Foundation / ComposerScripts :: postUpdate php artisan optimizar Generando cargador de clases optimizado Se ha eliminado el archivo de servicios compilado. clave artesanal php: generar clave de aplicación [base64: exxxxxxxxxxxxxxxxxxxxxxxxxxxxxx / k =] establecida con éxito.
Por defecto, la configuración de la clave en config / app.php es la siguiente, usa
AES-256-CBC
y la clave generada al crear el proyecto se almacena en el archivo
.env
.
Si usa comandos como
cp -r ./* /var/www/market/
el archivo
.env
no se moverá a la ruta de la aplicación.
/* |-------------------------------------------------------------------------- | 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'',
Cuando cambio mi comando de despliegue a
cp -r ./* ./.env /var/www/market/
, este problema desapareció.
También puede consultar este github.com/laravel/framework/issues/9080 github.
Si el comando artesanal no funciona y obtiene el mismo error en la línea de comando, eso significa que el compositor no hizo un buen trabajo para obtener todos los archivos, debe eliminar la carpeta del proveedor y ejecutar la
composer update
nuevamente.
Si está ejecutando un proyecto Laravel por primera vez en esa máquina, asegúrese de tener los requirements necesarios. Abra su CMD / Terminal en el directorio de su proyecto o
cd to/your/project/dir
Dé este comando nuevamente:
composer update
Cambie su
.env.example
a
.env
y realice los cambios necesarios en ese archivo, especialmente las configuraciones de la base de datos para evitar errores de db.
Entonces
php artisan key:generate
Esto resuelve este problema de longitud de clave de cifrado AES cada vez que creo un proyecto Laravel o lo clono desde git.
Verifique su archivo .env si
APP_KEY
no está configurado, es el problema. Ahora ejecute
php artisan key:generate
luego ejecute
php artisan config:cache
establecerá una clave APP_KEY en su archivo .env.
Si APP_KEY ya está configurado, ejecute los mismos comandos. Se actualizará esta clave.
en el archivo
.env
, dé esta clave y ya está
APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E
¿Sigue sin funcionar?
Si está trabajando desde cli, reinicie el servidor y lo hará.
¿Quieres explicación?
ok, como dice el mensaje de error:
Los únicos cifrados admitidos son AES-128-CBC y AES-256-CBC con las longitudes de clave correctas.
La longitud de la clave para
AES-128-CBC
es de 16 caracteres, p. Ej. ABCDEF123ERD456E
La longitud de la clave para
AES-256-CBC
es de 32 caracteres, p. Ej. ABCDEF123ERD456EABCDEF123ERD456E
Asegúrese de que en
config/app.php
el
cipher
esté configurado en el cifrado apropiado como los dos anteriores y que la clave apunte a la variable
.env
archivo
APP_KEY
.
Mi aplicación tiene el conjunto de cifrado
AES-256-CBC
, así que le di la clave de 32 caracteres como
APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E
y todo funcionó bien después de eso.
Sigue estos pasos:
Paso 1: asegúrese de tener el archivo .env en su aplicación. Si no ejecuta este comando,
cp .env.example .env
Paso 2: Ahora ejecuta el siguiente comando (
php artisan key:generate
) para generar una clave y se guardará en el archivo .env automáticamente.
Paso 3: Ejecute
php artisan config:cache
Arreglará todo.