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



我的代码工作得很好,但实际的问题是,从MySQL数据库检索的密码点击提交按钮后,是相同的存储在数据库中MD5格式的e10adc3949ba59abbe56e057f20f883e和很好地传递到用户的收件箱。但是因为哈希格式,它就没有用了吗?

这是我的工作代码;在将其发送回用户之前,我可以对其进行解密吗?我将密码以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>

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

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

希望这对你有帮助!

最新更新