我重寫PHP登錄系統,我只是面對這個登錄系統的Hash鹽
function createSalt()
{
$string = md5(uniqid(rand(), true));
return substr($string, 0, 3);
}
$salt = createSalt();
$hash = hash('sha256', $salt . $hash);
Actualy我從來沒有與鹽析工作之前,我搜索了一下,發現它是有用的。 但我的回答是,這是一個用鹽工作的好方法嗎? 會不會$string = sha1(uniqid(mt_rand(), true))
更好?
那麼只返回散列的3個字符?我真的不明白。
你覺得呢?
這是一個比簡單哈希更好的子原子位。但是有更好的工具,比如[phppass](http://www.openwall.com/phpass/)或[PBKDF2](https://defuse.ca/php-pbkdf2.htm),它們更安全。你只需要確保你使用的任何新函數你仍然可以驗證舊的哈希(並且你必須檢測哈希是舊的還是新的)。 – vstm