'salt'在字符串到鍵(s2k)說明符中指的是什麼?'salt'在字符串到鍵(s2k)說明符中指的是什麼?
這似乎是一個隨機數發生器動搖的東西,但我想知道什麼是「鹽」代表什麼嗎?
例如,它寫的是:
3.6.1.2. Salted S2K
This includes a "salt" value in the S2K specifier -- some arbitrary
data -- that gets hashed along with the passphrase string, to help
prevent dictionary attacks.
Octet 0: 0x01
Octet 1: hash algorithm
Octets 2-9: 8-octet salt value
Salted S2K is exactly like Simple S2K, except that the input to the
hash function(s) consists of the 8 octets of salt from the S2K
specifier, followed by the passphrase.
但鹽是沒有定義,但它的意義似乎很清楚。
稱他們爲「隨機」並不真實,而維基百科文章至少可以說是值得懷疑的。我認爲即使它們是一個常量,它們也可能被稱爲「鹽」,我敢肯定它們可以被稱爲「鹽」,即使它們不是隨機的,而是來自諸如用戶ID之類的常數值。 – 2010-05-16 21:41:08
更準確地說,如果鹽對於每個條目都是恆定的,它仍然會阻止預生成的彩虹表工作;如果salt也隨每個用戶而變化,則它還可以防止攻擊者生成彩虹表並在每個條目上使用它。 – 2010-05-16 21:42:53
@ Lo'oris:我認爲在許多情況下使用user_id作爲鹽是一個壞主意。例如,根在某些系統上具有user_id 0,您可以預先計算該鹽的字典。鹽不應該提前預測。這就是爲什麼一個隨機數是好的,儘管我承認還有其他方式來產生不可預知的數字,比如使用散列。 – 2010-05-16 22:33:18