Php 登录不使用md5
好的,我尝试登录到我的站点,但它告诉我用户名是错误的,我以前使用MD5和salt作为安全密码,但现在我只使用普通MD5,所以我删除了salt函数。现在它不让我登录了Php 登录不使用md5,php,sql-server,odbc,md5,Php,Sql Server,Odbc,Md5,好的,我尝试登录到我的站点,但它告诉我用户名是错误的,我以前使用MD5和salt作为安全密码,但现在我只使用普通MD5,所以我删除了salt函数。现在它不让我登录了 <?php session_start(); $Info['sqlhost'] = ".\SQLEXPRESS"; $Info['sqluser'] = "sa"; $Info['sqlpass'] = "******"; $Info['sqldb'] = "Account"; $connection = odbc_co
<?php
session_start();
$Info['sqlhost'] = ".\SQLEXPRESS";
$Info['sqluser'] = "sa";
$Info['sqlpass'] = "******";
$Info['sqldb'] = "Account";
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$Info[sqlhost];Database=$Info[sqldb];", $Info['sqluser'], $Info['sqlpass']);
$postData['user'] = sql_clean($_POST['user']);
$postData['pass'] = MD5(sql_clean($_POST['pass']));
$postData['page'] = $_POST['page'];
$postData['ip'] = $_SERVER['REMOTE_ADDR'];
$stmt = odbc_prepare($connection, "SELECT * FROM Account..tAccounts WHERE sUsername = ?");
$exec = odbc_execute($stmt, array($postData['user']));
if($stmt)
{
$sqlData = odbc_fetch_array($stmt);
$userData['sUsername'] = $sqlData['sUsername'];
$userData['sUserPass'] = $sqlData['sUserPass'];
$userData['sIP'] = $sqlData['sIP'];
if(odbc_num_rows($stmt) != 1)
{
header('Location: index.php?failed=1337');
exit();
}elseif (MD5($postData['pass']) == $userData['sUserPass'])
{
$_SESSION['user'] = $userData['sUsername'];
header("Location: $postData[page]");
exit();
}
else
{
header('Location: '. $postData['page'] .'?failed=1337');
exit();
}
}
else
{
die('Query Failed');
}
function sql_clean($str) {
$characters = array('^', '°', '!', '"', '²', '§', '³', '$', '%', '&', '/', '{', '(', '[', ')', ']', '=', '}', '?', '\'', '´', '`', '€', '*', '+', '~', '#', "'", '<', '>', '|', 'µ', ';');
$replace=array('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
return str_replace($characters,$replace,$str);
}
odbc_close($connection);
?>
URL返回的结果是?failed=1337,其他情况不会发生。登录时不使用md5-将其称为伪装的祝福。你不应该使用那个旧的hasher;它又旧又破。我建议您使用或PHP5.5的函数。对于PHP<5.5,使用.SELECT*FROM帐户..tAccounts如果是我的方式,我会使用SHA2,但不是。你说的“但不是”是什么意思?你别无选择,只能用这个?说不是这样。我以前使用MD5和salt来实现安全密码,但现在我只使用普通MD5,所以我删除了salt函数。好吧,现在,你必须这么做。没有盐,就没有酱汁。他们需要匹配。如果密码是和salt一起存储的,那么没有salt你就不走运了。好吧,这需要做的远不止这些,更改已经注册了公共成员的数据库密码。重写注册、控制面板等。因此,我想暂时坚持使用MD5。