2012-08-27 87 views
0

你好這是我當前的代碼我工作:哈希驗證

$uname = "unholybanana"; 
$pass = "choykiller13"; 
$salt = salty(); 
$password = sha1 ($uname . $pass . $salt); 
echo $password; 

function salty() { 
    mt_srand(microtime(true)*100000 + memory_get_usage(true)); 
    return md5(uniqid(mt_rand(), true)); 
} 

到目前爲止,我的問題是$密碼回聲$ UNAME + $散列通混合,但它不混鹽任何人都可以指出這是一個問題。我目前只是將sha1用於學習目的,而不是直接用於scrypt和bcrypt。另外這是我會做的數據插入到數據庫的內容:

$sql= "INERT into test SET uname='$uname', hashpass='$password', salt='$salt'"; 

將是巨大的,如果任何人都可以發現是否有與我上面插一個問題。

到目前爲止,我不知道如何才能驗證這一點。(語法)將不勝感激任何人會指出我在一個很好的方向。

但我認爲它應該仍然考慮我將如何去編碼這個。

 $checkpass= sha1 ($uname . $pass . $salt) == $hashpass; 

此外,我想補充$ UNAME因爲我所有的unames的給予客戶端,以便所有unames是這樣的C-9183102。

謝謝任何​​幫助謝謝!

回答

2

你幾乎肯定要

$sql= "INSERT into test SET uname='$uname', hashpass='$password', salt='$salt'"; 

,而不是INERT

+0

哈哈哈沒有看到這個錯字。 = d –