【发布时间】:2011-06-06 07:09:01
【问题描述】:
好的,所以我正在学习 php、html 和 mysql 来学习网站开发(为了好玩)。我仍然不明白的一件事是如何使用 md5 或 sha1 哈希。我知道如何散列纯文本,但说我想制作一个登录页面。既然密码是散列的并且不能反转,mysql怎么知道用户插入的密码与数据库中的散列密码匹配?这就是我的意思:
$password = md5($_POST['password']);
$query = ("INSERT INTO `users`.`data` (`password`) VALUES ('$password')");
我知道这个 sn-p 脚本对密码进行哈希处理,但我将如何使用这段代码并制作登录页面?任何工作示例都会很棒。
这是我的脚本:
<?php
session_start();
include("mainmenu.php");
$usrname = mysql_real_escape_string($_POST['usrname']);
$password = md5($_POST['password']);
$con = mysql_connect("localhost", "root", "g00dfor@boy");
if (!$con) {
die(mysql_error()); }
mysql_select_db("users", $con) or die(mysql_error());
$login = "SELECT * FROM `data` WHERE (`usrname` = '$usrname' AND `password` = '$password')";
$result = mysql_query($login);
if (mysql_num_rows($result) == 1) {
$_SESSION['logged_in'] = true;
header('Location: indexlogin.php');
exit;
}
else {
echo "Wrong username or password.";
}
?>
但我仍然得到 else 语句,“错误的用户名或密码。请帮忙!”
【问题讨论】:
-
使用 md5 of sha1 hashes ?我猜你的意思是或?
-
@thirtydot 如果没有最小字符数,我会简单地写“lol”
-
也许我只需要使用 fetch_array 函数。