我要爲我的網站還挺創建身份驗證系統,但我遇到的問題與MD5函數 - 它不能正常工作,看看下面的代碼片段:PHP MD5返回相同的哈希不同的輸入
$valid_request = 0;
$login = "";
$passwordMD5 = "";
$hardwareidMD5 = "";
$hash1 = "";
$hash2 = "";
// a - username
// b - hardwareid md5 hash
// c - password md5 hash
// d - hash of (a+b+c)
// e - hash of (a+b+c+d)
if(isset($_GET['a']) && isset($_GET['b']) && isset($_GET['c'])
&& isset($_GET['d']) && isset($_GET['e']))
{
$login = $_GET['a'];
if(strlen($login) <= 32 && strlen($login) >= 1 && isValid($login,1) === 1)
{
$passwordMD5 = $_GET['b'];
if(strlen($passwordMD5) === 32 && isValid($passwordMD5,2) === 1)
{
$hardwareidMD5 = $_GET['c'];
if(strlen($hardwareidMD5) === 32 && isValid($hardwareidMD5,2) === 1)
{
$valid_request = 1;
$hash1 = MD5($login+$passwordMD5+$hardwareidMD5);
$hash2 = MD5($login+$passwordMD5+$hardwareidMD5+$hash1);
echo "HASH1: $hash1\n"."HASH2: $hash2\n";
}else $valid_request = 0;
}else $valid_request = 0;
}else $valid_request = 0;
}else
$valid_request = 0;
問題是該行:
$hash1 = MD5($login+$passwordMD5+$hardwareidMD5);
$hash2 = MD5($login+$passwordMD5+$hardwareidMD5+$hash1);
echo "HASH1: $hash1\n"."HASH2: $hash2\n";
它總是打印兩次相同的MD5,頁面的源代碼如下所示:
HASH1: cfcd208495d565ef66e7dff9f98764da
HASH2: cfcd208495d565ef66e7dff9f98764da
你有偏見的Javascript **很多**,哥們。 –
你確定要添加('+')字符串嗎? – Zsw
查看[手冊](http://php.net/manual/en/book.password.php)關於如何在新版本的PHP中加密你的密碼。 –