如何在Laravel中临时存储数据库密码?

时间:2016-07-13 15:07:21

标签: php laravel laravel-5 laravel-5.1

我正在创建一个可以连接到不同服务器上的许多不同数据库的Laravel管理应用程序。我不希望在服务器上以明文形式存储密码,因为服务器在某些时候会受到损害,这样就可以访问每个应用程序'数据,而不仅仅是本地数据。

当用户点击其中一个要访问的数据库时,我希望他们输入该数据库的密码,然后在会话期间允许他们访问。

我可以将密码存储在会话变量中,但我不确定这是否安全。最安全的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用会话类加密它。

您可以对会话进行加密,然后将用户传递存储为加密变量。

您可以在此处查看如何操作:https://laravel.com/docs/5.1/session

您可以使用Encryption类加密/解密。 https://laravel.com/docs/5.1/encryption

// Somewhere in your controller
$encrypted = Crypt::encrypt($value);
$request->session()->put('encrypted_pass', $encrypted);

// Later in your controller
$encrypted= $request->session()->get('encrypted_pass', 'default_if_any');
$decrypted = Crypt::decrypt($encrypted);

这样的东西可能会起作用,你应该修改它以满足你的需要。