Hash

兩種鹽,一個密碼

  • June 26, 2018

如果我有兩個不同的 MD5 密碼雜湊和兩個不同的鹽(鹽是已知的),如果兩個密碼匹配,有什麼方法可以加密推斷?除了暴力破解密碼,就是這樣。

不,如果可能的話,它就違背了使用鹽的目的。例如,可以建構一個彩虹表,將每個可能的密碼連同一個固定的鹽值映射到一個雜湊值。然後給定另一個鹽值和密碼雜湊,如果您要求的可能的話,可以在表中找到密碼。

加密散列函式有 2 個屬性(讓我們用它h()來表示一個散列函式):

  • 強無碰撞:在多項式時間內(很難)找到xy這樣h(x) = h(y);
  • 弱無碰撞:如果給定x,則不可能在多項式時間內找到,y使得h(x) = h(y)

即使x = (password + salt1)和也會發生這種情況y = (password + salt2)。沒有辦法關聯h(x)h(y)因為h(x) != h(y)(不同)。而且由於在多項式時間內不可能計算倒數,因此不可能將它們聯繫起來(除非 $ \text{P}=\text{NP} $ ).

就算知道了xh(x)h(y)很難得到ysalt2

然而 MD5 和 SHA-1 不是強無衝突的。但它們仍然弱無碰撞。不應使用它們。

引用自:https://crypto.stackexchange.com/questions/60315