到目前爲止,我一直在使用md5在我的網站上散列密碼,沒有鹽分。從md5()切換到crypt()
現在我正在構建一個應用程序,它必須更安全,而且我正在閱讀的md5可能很容易受到強力攻擊。
所以我想使用crypt()
散列密碼。
我還沒有完全理解是:
- 我必須提供少鹽或內置生成一個好嗎?
- 多少次(如果超過一個)我應該迭代crypt函數是否安全?
- 使用md5,無論輸入字符串的長度如何,哈希值都是32位。隱藏是否也返回標準長度的哈希?
到目前爲止,我一直在使用md5在我的網站上散列密碼,沒有鹽分。從md5()切換到crypt()
現在我正在構建一個應用程序,它必須更安全,而且我正在閱讀的md5可能很容易受到強力攻擊。
所以我想使用crypt()
散列密碼。
我還沒有完全理解是:
如果你想指定DES以外的加密,你需要提供一個salt。否則,你對默認salt很好。
你不會自己迭代crypt函數,這是在內部使用算法的地方完成的。迭代次數通過salt指定。
是的,給定散列算法的散列長度是標準的;然而,不同的散列算法具有不同的散列長度。
crypt可以使用不同的散列algorytms。與md5
它返回128位整數(與32個字符十六進制表示)。用一次鹽使用crypt
就足夠安全了。建議鹽由應用程序提供
一個可選的鹽字符串,以散列爲基礎。如果未提供,則 行爲由算法實現定義,並且可能導致 意外的結果。
128位,但它不是一個整數 –