Php 登录不使用md5

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

好的,我尝试登录到我的站点,但它告诉我用户名是错误的,我以前使用MD5和salt作为安全密码,但现在我只使用普通MD5,所以我删除了salt函数。现在它不让我登录了

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