Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中通过忘记密码邮件获取实际密码?_Php_Html_Mysql_Md5_Forgot Password - Fatal编程技术网

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

如何在php中通过忘记密码邮件获取实际密码?,php,html,mysql,md5,forgot-password,Php,Html,Mysql,Md5,Forgot Password,我的代码工作正常,但实际问题是,单击提交按钮后从MySQL数据库检索到的密码与以MD5格式存储在数据库中的密码相同,如e10adc3949ba59abbe56e057f20f883e,并很好地发送到用户的收件箱。但是由于散列格式的原因,它是无用的吗 这是我的工作代码;我可以在将其发送回用户之前对其进行解密吗?我在MySQL数据库中以MD5格式存储密码。我收到了类似“您的密码:e10adc3949ba59abbe56e057f20f883e”的电子邮件 Html代码: <body>

我的代码工作正常,但实际问题是,单击提交按钮后从MySQL数据库检索到的密码与以MD5格式存储在数据库中的密码相同,如
e10adc3949ba59abbe56e057f20f883e
,并很好地发送到用户的收件箱。但是由于散列格式的原因,它是无用的吗

这是我的工作代码;我可以在将其发送回用户之前对其进行解密吗?我在MySQL数据库中以MD5格式存储密码。我收到了类似“您的密码: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>

忘记密码
电子邮件id:
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密码。您可以遵循的流程是:

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

希望这有帮助

与其发送旧密码,不如发送密码重置链接来设置新密码,不要提醒用户他的旧密码。只需为用户生成一个新的一次性密码,并为他提供使用该一次性密码重置密码的链接。好的,你知道如何实现吗?
md5
不安全,使用
password\u hash
password\u verify
。好的,我刚得到解决方案,可以尝试更新我的代码。是的,听起来不错,我想我想用谷歌搜索一些东西,因为持续时间更短,我想尽快实现它。无论如何,你能告诉我任何链接或一些如何实现它的信息吗?试试这个:谢谢@Harwinder Singh,我只是通过观看一些youtube视频、学习一些教程和你推荐的链接来解决我忘记密码的问题。