我正在研究構建一個登錄系統,並且當您將一個2位數的鹽傳遞給crypt()
函數時,它會讀取PHP手冊,它將返回一個哈希字符串,並且該字符串的前兩位數字是您使用的鹽。爲什麼PHP crypt()會在salt中加入哈希值?
例如:
$salt = "kr";
echo crypt("mysecret",$salt); //returns "kreOI.F7eOQMY"
我首先想到的是,就不會這樣幫助別人誰是試圖扭轉你的哈希?
爲了獲得最佳的安全性,鹽值保持祕密:
我在維基百科上說,它擡頭salt。
所以我不明白爲什麼然後crypt函數返回所有使用salt值的哈希值?
這是有原因嗎?這應該是安全問題嗎?
這就是爲什麼我建議兩部分的鹽。一個在配置文件中是祕密的,但對所有用戶都是一樣的,另一部分與每個用戶隨機生成的不同密碼一起保存。 – CodesInChaos 2011-01-26 17:34:31
@meager,其實我試圖升級一個我繼承的。 – 2011-01-26 17:38:21
維基百科不應該被視爲福音。鹽不是祕密。 – 2011-01-26 22:44:08