如何将文本字段密码与数据库md5密码进行比较。

时间:2013-12-12 11:01:06

标签: php mysql

我想,当用户名和密码文本字段与数据库用户名和密码匹配时,用户将登录。在database.i中存储md5()密码,以便比较文本字段密码和数据库md5格式密码。

的index.html

> <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>

的login.php

$user=$_POST['t1'];
$pass=md5($_POST['t2']);
$result=mysql_query("select * from registor where username='$user' and password='$pass'")or die(mysql_error());
$row=mysql_fetch_row($result);

它无效。密码文本字段与md5不匹配?怎么样?

3 个答案:

答案 0 :(得分:0)

这样做的诀窍是:

$result=mysql_query("select * from registor where username='$user' and password=md5('$pass');")or die(mysql_error());

基于http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html

的记录

答案 1 :(得分:0)

只需在查询中添加md5。

$user=$_POST['t1'];
$pass=md5($_POST['t2']);
$result=mysql_query("select * from registor where username='$user' and    
 password=md5('$pass')")or die(mysql_error());
$row=mysql_fetch_row($result);

注意:尝试使用mysqli或PDO

答案 2 :(得分:0)

切线略有偏差,但如果可能的话,你大喊大叫不要使用md5存储散列密码。特别是没有盐。有关这方面的更多信息的一个很好的起点是:

http://ircmaxell.github.io/password-hashing-mini-presentation/ http://www.phptherightway.com/#password_hashing