如何通过php中的忘记密码邮件获取实际密码?

Posted

技术标签:

【中文标题】如何通过php中的忘记密码邮件获取实际密码?【英文标题】:How to get actual password through forgot password mail in php? 【发布时间】:2017-01-06 07:40:33 【问题描述】:

我的代码工作正常,但实际问题是单击提交按钮后从 mysql 数据库中检索到的密码与以 MD5 格式(如 e10adc3949ba59abbe56e057f20f883e)存储在数据库中的密码相同,并且很好地传递到了用户的收件箱。但是是不是因为hash格式就没用了。

这是我的工作代码;我可以在将其发回给用户之前对其进行解密吗?我将密码以 MD5 格式存储在 MySQL 数据库中。我收到了类似“您的密码:e10adc3949ba59abbe56e057f20f883e”的电子邮件

html代码:

 <body>
 <h1>Forgot Password<h1>
 <form action='#' method='post'>
 <table cellspacing='5' align='center'>
 <tr><td>Email id:</td><td><input type='text' name='email'/></td></tr>
 <tr><td></td><td><input type='submit' name='submit' value='Submit'/></td></tr>
 </table>
 </form>

php代码:

 <?php
 if(isset($_POST['submit']))
  
  $servername = "localhost";
  $username = "username";
  $password = "password";
  $dbname = "testdb";

  // Create connection
  $conn = mysqli_connect($servername, $username, $password, $dbname);
 // Check connection
 if (!$conn) 
 
  die("Connection failed: " . mysqli_connect_error());
 

 $email=$_POST['email'];

 $sql = "select * from users where email='".$email."' ";
 $q = mysqli_query($conn, $sql);

 $p=mysqli_affected_rows();
 if($p!=0) 
 
  $res=mysqli_fetch_array($q);
  $to=$res['email'];
  $subject='Remind password';
  $message='Your password : '.$res['password']; 
  $headers='From:Admin120@xxx.com';
  $m=mail($to,$subject,$message,$headers);
  if($m)
 
   echo'Check your inbox in email';
 
 else
 
  echo'email is not send';
 

 else
 
   echo'You entered email id is not present';
 
 
 ?>
 </body>

【问题讨论】:

不要发送旧密码,而是发送密码重置链接来设置新密码 不要提醒用户他的旧密码。只需为用户生成一个新的一次性密码,并为他提供使用该一次性密码重置密码的链接。 好的,您知道如何实现吗? md5 不安全,请使用 password_hashpassword_verify 好的,我刚刚得到了解决方案,可以尝试更新我的代码。 【参考方案1】:

您无法解密 MD5 密码。您可以遵循的过程是:

通过链接向用户发送电子邮件 在检查客户是否使用经过验证的电子邮件 ID 和令牌后,使用新表单打开该链接。 提供 2 个文本框来更新他的密码/设置新密码。

希望这会有所帮助!

【讨论】:

是的听起来不错,我想我想用谷歌搜索一些东西,因为我想尽快实施它。无论如何,你能告诉我如何实现它的任何链接或一些信息吗? 试试这个:phpgang.com/how-to-create-forget-password-form-in-php_381.html 感谢@Harwinder Singh,我刚刚通过观看一些 youtube 视频、学习一些教程以及显然您建议的链接解决了我忘记密码的问题。

以上是关于如何通过php中的忘记密码邮件获取实际密码?的主要内容,如果未能解决你的问题,请参考以下文章

忘记登录 - PHP 问题

PHP发送忘记密码的电子邮件

qtcreator忘记密码

账号密码忘记了怎么办?

PHP忘记密码方法[重复]

linux mysql 忘记密码 怎么修改密