好的,所以我正在学习php,html和mysql来学习网站开发(为了好玩)。我还没有得到的一件事是如何使用md5或sha1哈希。我知道如何散列纯文本,但说我想做一个登录页面。由于密码被散列且无法颠倒,因此mysql如何知道用户插入的密码与数据库中的散列密码相匹配?这里是我的意思是:如何使用md5散列?
$password = md5($_POST['password']);
$query = ("INSERT INTO `users`.`data` (`password`) VALUES ('$password')");
我知道这个片断脚本的散列密码,但我怎么会用这一段代码,让一个登录页面?任何工作示例都会很棒。
这里是我的脚本:
<?php
session_start();
include("mainmenu.php");
$usrname = mysql_real_escape_string($_POST['usrname']);
$password = md5($_POST['password']);
$con = mysql_connect("localhost", "root", "[email protected]");
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语句,“错误的用户名或密码,有人帮助PLZ!”
看起来相关:http://stackoverflow.com/questions/4642376/trouble-making-login-page – thirtydot 2011-01-10 01:49:37
*使用sha1散列*的MD5?我猜你是指*或*? – 2011-01-10 01:54:37
@thirtydot如果没有最小字符数,我会直接写“lol” – Ken 2011-01-10 02:08:07