2012-05-26 77 views
0

到目前爲止,我一直在使用md5在我的網站上散列密碼,沒有鹽分。從md5()切換到crypt()

現在我正在構建一個應用程序,它必須更安全,而且我正在閱讀的md5可能很容易受到強力攻擊。

所以我想使用crypt()散列密碼。

我還沒有完全理解是:

  1. 我必須提供少鹽或內置生成一個好嗎?
  2. 多少次(如果超過一個)我應該迭代crypt函數是否安全?
  3. 使用md5,無論輸入字符串的長度如何,哈希值都是32位。隱藏是否也返回標準長度的哈希?

回答

1

如果你想指定DES以外的加密,你需要提供一個salt。否則,你對默認salt很好。

你不會自己迭代crypt函數,這是在內部使用算法的地方完成的。迭代次數通過salt指定。

是的,給定散列算法的散列長度是標準的;然而,不同的散列算法具有不同的散列長度。

0

crypt可以使用不同的散列algorytms。與md5它返回128位整數(與32個字符十六進制表示)。用一次鹽使用crypt就足夠安全了。建議鹽由應用程序提供

一個可選的鹽字符串,以散列爲基礎。如果未提供,則 行爲由算法實現定義,並且可能導致 意外的結果。

+0

128位,但它不是一個整數 –