2016-10-28 51 views
-2

考慮以下打字稿:爲什麼bcrypt總是返回不同的結果?

$ ./artisan tinker 
>>> bcrypt('123456') 
=> "$2y$10$YLswQefA6JXTYMM5nH90we9siAtG71I1/LMa5XIkplCF32EMtXmKK" 
>>> bcrypt('123456') 
=> "$2y$10$LoakjerqalqFxI6r.BR.x.K1fycqWS59Xqfj.pblSzlPNLOcbWa/6" 

這是爲什麼?

+0

@AlexeyMezenin首先''/ php'通常不會工作。其次,爲什麼不把它保留下來('。/ artisan')?這意味着可以讓「artisan」可執行並更容易運行。對於那些還不知道的人。 –

+0

如果你願意解釋你什麼時候downvote,我會很感激;) –

回答

2

每次都使用不同的鹽。將A random salt混入哈希以防止使用precomputed hash tables。如果沒有醃製,攻擊者將能夠檢測到由於其可識別的散列而產生的常見字符串,如password123。鹽分確保哈希不可預測。

+0

也可以立即知道兩個或多個人是否有相同的密碼 –

+0

你能否在彩虹桌上詳細說明一下,如果這就是你提到的?我收集,他們不只是密碼和哈希之間的映射?智能哈希表? –

+0

正是這樣:密碼和哈希之間的映射。沒有sal an,攻擊者可以預先計算許多常見密碼的哈希值。 –

相關問題