2012-07-22 239 views
0

我需要在我的網上商店保護某些區域以供管理員使用。 問題在於用戶的身份驗證:salt + hash失敗。用戶身份驗證失敗/ w Hash

這是我(使用PHP5.x)創建口令代碼:

$salt = rand(0, 999999999999);<br> 
$passEncr = sha1($pass1 + $salt); 

這個變量$ passEncr與鹽插入到數據庫在一起。

在登錄頁面上我已經得到了以下檢查:

$password = $_POST['password']; // hash+salt in the database 

$storedSalt = $row['salt']; // salt from database<br> 
if (sha1($password + $storedSalt) == $row['password']) 

現在我遇到的問題是,一些哈希似乎是相同的。 如果我嘗試使用字母數字密碼登錄,則無論該密碼的內容是什麼,都會成功。 完整登錄檢查在這裏:http://pastebin.com/WjVnQ4aF

有人可以請解釋我做錯了什麼?

回答

0

那麼,SQL注入,使用SHA而不是bcrypt密碼是我看到的第一件事情,不使用OpenId,所以你可以擺脫存儲密碼的業務是另一回事。

至於密碼是相同的,我會檢查數據庫 - 看看你正在存儲什麼,它會告訴你你的問題在哪裏。