Laravel 5.3 - 如何加密 .env

问题描述 投票:0回答:1

如何在 Laravel 5.3 中加密 .env?

我在应用程序中遇到此问题。我需要加密 .env 信息才能将应用程序上传到生产环境

谢谢

php environment-variables laravel-5.3
1个回答
0
投票

加密环境文件

未加密的环境文件不应存储在源代码管理中。但是,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

© www.soinside.com 2019 - 2024. All rights reserved.