如何在 Laravel 5.3 中加密 .env?
我在应用程序中遇到此问题。我需要加密 .env 信息才能将应用程序上传到生产环境
谢谢
未加密的环境文件不应存储在源代码管理中。但是,Laravel 允许您加密环境文件,以便它们可以与应用程序的其余部分一起安全地添加到源代码管理中。
要加密环境文件,您可以使用
env:encrypt
命令:
php artisan env:encrypt
运行
env:encrypt
命令将加密您的 .env
文件并将加密内容放入 .env.encrypted
文件中。解密密钥出现在命令的输出中,并且应存储在安全密码管理器中。如果您想提供自己的加密密钥,可以在调用命令时使用 --key
选项:
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
提供的密钥长度应与所使用的加密密码所需的密钥长度相匹配。默认情况下,Laravel 将使用
AES-256-CBC
密码,该密码需要 32 个字符的密钥。您可以通过在调用命令时传递 --cipher
选项来自由使用 Laravel 加密器支持的任何密码。
如果您的应用程序有多个环境文件,例如 .env 和
.env.staging
,您可以通过 --env
选项提供环境名称来指定应加密的环境文件:
php artisan env:encrypt --env=staging
要解密环境文件,您可以使用
env:decrypt
命令。此命令需要解密密钥,Laravel 将从 LARAVEL_ENV_ENCRYPTION_KEY
环境变量中检索该密钥:
php artisan env:decrypt
或者,可以通过
--key
选项直接向命令提供密钥:
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
当调用
env:decrypt
命令时,Laravel 将解密 .env.encrypted
文件的内容,并将解密后的内容放入 .env
文件中。
可以向 env:decrypt 命令提供
--cipher
选项,以便使用自定义加密密码:
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
如果您的应用程序有多个环境文件,例如 .env 和
.env.staging
,您可以通过 --env
选项提供环境名称来指定应解密的环境文件:
php artisan env:decrypt --env=staging
为了覆盖现有环境文件,您可以为
--force
命令提供 env:decrypt
选项:
php artisan env:decrypt --force
来源:https://laravel.com/docs/11.x/configuration#encrypting-environment-files