我正在创建一个可以连接到不同服务器上的许多不同数据库的Laravel管理应用程序。我不希望在服务器上以明文形式存储密码,因为服务器在某些时候会受到损害,这样就可以访问每个应用程序'数据,而不仅仅是本地数据。
当用户点击其中一个要访问的数据库时,我希望他们输入该数据库的密码,然后在会话期间允许他们访问。
我可以将密码存储在会话变量中,但我不确定这是否安全。最安全的方法是什么?
答案 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);
这样的东西可能会起作用,你应该修改它以满足你的需要。