Env encryption and decryption library.
Prevent committing and exposing vulnerable plain-text environment variables in production environments.
You can view a more in-depth tutorial on Medium.
Install secure-env-php using Composer
composer require johnathanmiller/secure-env-php
Create an .env file in your project with environment variables.
DB_HOST=localhost
DB_USER=username
DB_PASS=passwordExecute vendor/bin/encrypt-env in your project directory and follow the command prompts to encrypt your .env file. You can press enter to accept the default values in the square brackets.
- Path to your .env file you want to encrypt.
- Input "y" or "yes" to generate a new secret key file. Otherwise input path to secret key file when prompted.
- Your choice of encryption algorith or accept the default provided. For a list of supported algorithms visit: https://secure.php.net/manual/en/function.openssl-get-cipher-methods.php.
- Path to save the encrypted environment file.
After you've successfully completed the prompts you should now have an encrypted environment file.
Import into namespace environment
use SecureEnvPHP\SecureEnvPHP;Instantiate class with your decryption arguments. First argument is path to your encrypted env file, second argument is path to your secret key file, and optionally a third argument can be set for your choice of encryption algorithm, (this needs to match the algorithm you used to encrypt your env file).
(new SecureEnvPHP())->parse('.env.enc', '.env.key');| parameter | description | default |
|---|---|---|
| 1. path | Path to encrypted file | .env.enc |
| 2. secret | Path to key file or secret string | |
| 3. algo | Encryption algorithm | aes256 |
After instantiating the SecureEnvPHP class you can retrieve your values in your project by calling getenv with your variable names, such as getenv('DB_HOST').
<?php
require_once './vendor/autoload.php';
use SecureEnvPHP\SecureEnvPHP;
(new SecureEnvPHP())->parse('.env.enc', '.env.key');
$host = getenv('DB_HOST');Secure Env PHP is inspired by https://github.com/kunalpanchal/secure-env for NodeJS.
