Ya sabemos que el archivo .env en Laravel es el encargado de guardar las variables de entorno, datos sensibles como credenciales de proveedores de pagos, redes sociales, bases de datos y mucho más. Por este motivo, nunca es buena idea publicar el archivo .env en nuestros repositorios, en su lugar, guardamos un archivo .env.example que contiene una copia exacta de nuestro archivo .env, pero sin sus valores.
A partir de Laravel v9.32.0 tenemos a nuestra disposición dos comandos nuevos a través de artisan que nos permiten encriptar y desencriptar archivos .env:
Encriptar .env en Laravel
Para encriptar nuestro archivo .env en Laravel simplemente debemos ejecutar el siguiente comando en nuestro proyecto:
Como puedes ver, el comando php artisan env:encrypt
habrá creado un nuevo archivo .env.encrypted, el cual si lo abrimos tendrá la siguiente apareciencia:
Como puedes ver, el archivo ha quedado encriptado de forma completa.
Desencriptar .env en Laravel
Al igual que hemos podido encriptar nuestro archivo .env, podemos desencriptar el archivo .env.encrypted, para ello, debemos hacer uso del siguiente comando utilizando la clave que nos ha ofrecido el comando encrypt:
Al momento de desencriptar el archivo .env.encrypted, es importante que el archivo .env no exista en nuestro proyecto ya que lo que hará este comando será generar de nuevo nuestro archivo .env con los valores que contenía cuando fue encriptado.
¿Por qué encriptar el archivo .env en Laravel?
Un motivo por el que podemos querer encriptar el archivo .env en Laravel es necesitar publicar este archivo en nuestro repositorio para que los nuevos desarrolladores puedan acceder a él y a todos los valores definidos. Con el archivo encriptado en nuestro repositorio y un almacén de claves compartido para poder tener acceso a la clave que encripta el archivo .env, podemos publicar tranquilamente nuestras variables de entorno en nuestros repositorios con todos sus valores, eso sí, encriptados.