baglerit/envariable

此包已被弃用且不再维护。未建议替代包。

添加了一个 Artisan 命令,envariable:encrypt,可以将加密变量添加到 .env 文件中。

维护者

详细信息

github.com/BaglerIT/envariable

来源

5.0.1 2015-06-24 01:26 UTC

This package is not auto-updated.

Last update: 2019-02-20 18:35:51 UTC


README

添加 Artisan 命令 envariable:encrypt,可以将加密的环境变量添加到 .env 文件中。

Laravel 版本

此工具使用 Laravel 5.0 开发和测试。

安装

  1. 在您的 Laravel 项目中需要此包
composer require baglerit/envariable
  1. 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.phpconfig/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 文件以确保您没有创建重复变量。
  • 此命令加密数据,但将其存储在包含加密密钥的同一文件中,因此它不是现有安全最佳实践的替代品。我编写此命令是因为我需要加密应用程序令牌以满足第三方安全要求。请勿假设此命令会使您的数据更加安全。