【发布时间】:2015-12-18 12:00:54
【问题描述】:
我用谷歌搜索了很多,但不幸的是没有找到可行的解决方案。
我知道这是一种不好的技术,但我需要通过电子邮件将其密码发送给用户。
我已成功发送用户哈希密码,但我无法解密此密码。
以下是我正在使用的程序。
$results = DB::select("select * from dockl_users where email='" . Input::get('email') ."';");
foreach($results as $data){
$password= $data->password;
$email= $data->email;
}
Mail::send('passwordRecovery', array('email' =>$password), function($message)
{
$message->to(Input::get('email') )->subject('Password Recovery');
});
上面的代码通过电子邮件将Encrypted密码发送给用户,但是当我尝试解密时,它给了我以下错误消息。
$decrypt= Crypt::decrypt($data->password);
无效数据。
throw new DecryptException("Invalid data.");
请指导我如何实现这一目标..
【问题讨论】:
-
哈希是单向,不提供解密方法。您应该向用户发送一个链接以重置其密码。
-
您永远不能存储用户的文字密码。永远,永远。
-
是的,这是可能的。不要,不要,不要,不要,不要那样做。这是一个重大的安全问题。
-
@Kirmani88:如果您将密码存储机制从哈希更改为加密,那么是的,您可以取回用户的密码,但是您正在创建一个不安全的网站。不要那样做。
-
如果您这样做,我们都承诺破解您的网站。 ¯\_(ツ)_/¯
标签: php laravel encryption