我使用salt加密我的用戶密碼。 我正在使用PHP,下面是用戶註冊期間發生的事情的快速示例。用鹽認證用戶登錄
這就是:
PHP代碼:
// Gives me my random key. My salt generator.
$salt = uniqid(mt_rand());
// My password via what users inputs.
$userpwd;
// Then the encryption. I use a HMAC hash.
$encrypted = hmac_hash("sha256", $userpwd, $salt);
?>
現在,在我的劇本都爲我工作。但我的問題是,我如何認證用戶登錄?新的加密密碼是隨機的,所以我無法將登錄表單中的密碼與數據庫中保存的加密密碼進行比較。
我搜索了並找不到解決方案。也許我沒有足夠努力搜索,但有沒有解密密碼的方法?我可以通過腳本來驗證用戶身份?
謝謝,那就是我會做的。我把我的鹽儲存在配置文件中。我讀過很多人說將鹽儲存在分貝中,但是我對它感到不舒服。只是將數據庫妥協了。 – Mario 2010-11-09 14:31:10
但請記住,爲每個人使用相同的鹽會減少強力攻擊者所需的計算時間。 – 2010-11-09 15:05:19
如果不止一個人擁有相同的密碼,它也會導致相同的散列。每個用戶有一個鹽(每個密碼)要好得多。 – Aether 2010-11-09 16:09:25