baglerit / envariable
此包已被弃用且不再维护。未建议替代包。
添加了一个 Artisan 命令,envariable:encrypt,可以将加密变量添加到 .env 文件中。
5.0.1
2015-06-24 01:26 UTC
Requires
- laravel/framework: ~5.0
This package is not auto-updated.
Last update: 2019-02-20 18:35:51 UTC
README
添加 Artisan 命令 envariable:encrypt
,可以将加密的环境变量添加到 .env
文件中。
Laravel 版本
此工具使用 Laravel 5.0
开发和测试。
安装
- 在您的 Laravel 项目中需要此包
composer require baglerit/envariable
- 在
app/Console/Kernel.php
中添加一行以注册此命令
protected $commands = [ ... \BaglerIT\EnVariableCommand\EnVariableCommand::class, ];
解密示例
以下是两种您可能想要访问环境变量的方式。
使用 Crypt Facade
如果您正在加载可以使用 Crypt
facade 的环境变量,以下是解密变量的方法。
use Illuminate\Support\Facades\Crypt; ... try { $value = Crypt::decrypt(env('VAR_NAME')); } catch(DecryptException $e) { ... }
不使用 Crypt Facade
(感谢 @bobbybouwmann 协助) 我的许多环境变量通常在 Laravel 项目的 config
文件夹中的文件中使用,例如 config/auth.php
和 config/database.php
。不幸的是,在配置文件中不可用 Crypt
facade,因此您需要创建一个新的 Encrypter
对象。
$crypt = new Illuminate\Encryption\Encrypter(env('APP_KEY')); ... 'mysql' => [ 'driver' => 'mysql', 'host' => $crypt->decrypt(env('DB_HOST')), 'database' => $crypt->decrypt(env('DB_DATABASE')), 'username' => $crypt->decrypt(env('DB_USERNAME')), 'password' => $crypt->decrypt(env('DB_PASSWORD')), 'port' => $crypt->decrypt(env('DB_PORT')), ...
警告
- 在使用之前,请确保解密加密的环境变量。
- 此命令不会检查环境变量是否已存在,因此请检查您的
.env
文件以确保您没有创建重复变量。 - 此命令加密数据,但将其存储在包含加密密钥的同一文件中,因此它不是现有安全最佳实践的替代品。我编写此命令是因为我需要加密应用程序令牌以满足第三方安全要求。请勿假设此命令会使您的数据更加安全。