【问题标题】:How to fetch md5 password from database php? [duplicate]如何从数据库 php 中获取 md5 密码? [复制]
【发布时间】:2013-12-12 06:25:40
【问题描述】:

如何从数据库中获取 md5 密码。 我正在制作登录表单> 我想,当用户要登录时。如果用户名和密码文本字段与数据库匹配,则使用将登录。

数据库.. 在数据库中,我用 md5() 存储密码。 现在如何从数据库中获取密码。以及如何使用它进行验证。 谢谢大家

<h1>Login Here</h1>
<form name="f1" action="login.php" method="post">
<table border="1">
<tr><td>username</td><td><input type="text" name="t1"></td></tr>
<tr><td>password</td><td><input type="password" name="t2"></td></tr>
<tr><td><input type="submit" value="login"></td></tr>
</table>
</form>

登录.php

  <?php
    include "db.php";
    $user=$_POST['t1'];
    $pass=$_POST['t2'];
    $result=mysql_query("select * from core where username='$user'")or die(mysql_error());
    $row=mysql_fetch_row($result);
    ?>
    <h1>Welcome Mr. <?php echo $user;?></h1>
    <table border="1">
    <tr><td>Your User-Id :- </td><td><?php echo $row[0];?></td></tr>
    <tr><td>Your Username: </td><td><?php echo $row[1];?></td></tr>
    <tr><td>your md5 Password: </td><td><?php echo $row[2];?></td></tr>
    <tr><td>your Email Id: </td><td><?php echo $row[3];?></td></tr>
    </table>

【问题讨论】:

  • 不要尝试从数据库中解码密码。而不是尝试将用户输入的密码编码为 md5 并将其与数据库进行检查。
  • 什么意思?向我们展示您当前的代码。此外,md5() 对哈希密码非常不安全。
  • 到目前为止你尝试过什么?给我们看代码...
  • 对登录时给出的密码字符串应用 md5() 函数,并检查以与存储在数据库中的密码字符串进行比较。
  • 这有太多问题了,我觉得我的脑袋要爆炸了。

标签: php mysql database md5


【解决方案1】:

不要尝试从数据库中解码密码并与用户输入的输入密码进行检查。而不是尝试将用户输入的密码编码为 md5 并与数据库进行检查。

没有办法解密 MD5。嗯,有,但没有合理的方法 去做吧。这就是重点。

要检查是否有人输入了正确的密码,您需要对用户输入的任何内容进行 MD5,并查看它是否与您在数据库中的密码相符。 更多信息,您可以查看this answer

所以你能做的就是这样

 if(isset($_POST['t2']) && trim($_POST['t2']) != ''){
   $pass = md5(trim($_POST['t2']));
   //Do a select query for fetching with the username and $pass and do the rest
 }

【讨论】:

  • 没有办法解密MD5。 ?不能同意这一点。虽然MD5是一种单向哈希算法,但是网上有很多提供md5哈希反向映射的资源(甚至md5() * md5()或者md5() with sha1()的组合都是反向映射的)。
  • 您可以在答案的链接中找到一个很好解释的原因。 @ShivanRaptor
猜你喜欢
  • 1970-01-01
  • 2019-10-10
  • 2011-08-17
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2018-03-28
  • 2011-07-14
  • 2013-03-04
相关资源
最近更新 更多