2013-07-14 88 views
1

我需要一個密碼安全散列函數,它具有與MD5相似的屬性,即:128位大小和快速。由於MD5本身現在已經非常糟糕,所以我想使用另一個散列。現在SHA1實際上比MD5更快,至少在我的電腦上(嘗試openssl speed md5 sha1),所以我想我只能從SHA1輸出中取出前128位並完成。但是,我不確定安全和碰撞的影響。使用散列函數的N個第一位有一個N位散列

  1. 這樣的散列函數是否比真正的128位散列函數更安全?
  2. 這樣的散列函數比真正的128位散列函數更容易發生衝突嗎?

p.s.對於快速128位哈希替代方案的替代建議也很受歡迎,即使它們有點超出了原始問題的範圍。

+0

爲什麼要堅持128位哈希? – delnan

+0

哈希的截斷是非常正常的事情,這是因爲加密密鑰生成,帶寬保存或有時在將數據填充到靜態大小的字段(數據庫,預先存在的文件格式等)時完成的。 –

回答

2

是的,你可以從SHA1輸出中取出前128位並完成。

如果您真的擔心通過短輸入的散列分配比特,請在輸入後放置一些填充數據或鹽。這將有助於確保在散列結果中均勻分佈輸入位。

相關問題