当我们将laravel
项目放到localhost
时。任何人都可以查看我们的项目.env文件,他们可以查看我们的数据库密码DB_USERNAME=
DB_PASSWORD=
我们如何加密它?
答案 0 :(得分:0)
您只需在“.env”文件中将加密字符串设置为密码,然后在代码中对其进行解密即可。但我认为它不会提高系统的安全级别。更重要的是在服务器上设置正确的配置(权限,文件位置等)。
答案 1 :(得分:0)
您可以使用$ _SERVER,$ _ENV(PHP超级全局变量)和env帮助程序访问环境变量,然后加密环境变量值并在为变量赋值时解密。有关详细信息laravel docs
如果您没有足够的时间找到此软件包,以便轻松添加加密的环境变量BaglerIT package
答案 2 :(得分:0)
这对我有用:
在您的database.php中:
use Illuminate\Encryption\Encrypter;
$key = 'a3c4b614a1f072e0f968c2712a36323f'; //A md5 hash (length 32)
$encrypter = new Encrypter($key, 'AES-256-CBC');
//encrypt test:
//$str = $encrypter->encryptString('your_password');
//die($str);
...
'connections' => [
'oracle' => [
...
'password' => $encrypter->decryptString(env('DB_PASSWORD')),
...
],
...
然后,您可以在加密后的.env文件中设置DB_PASSWORD,如下所示:
// Code to get the encrypted value
use Illuminate\Encryption\Encrypter;
$key = 'a3c4b614a1f072e0f968c2712a36323f'; // same key is used for decrypt
$encrypter = new Encrypter($key, 'AES-256-CBC'); // same key and cipher used for decrypt
$str = $encrypter->encryptString('your_password'); // <- THIS IS YOUR DB_PASSWORD VALUE