Hash
安全的 MD5 摘要
所以我聽說 MD5 壞了,因為它可以設計碰撞。因此,我們應該使用 SHA256。SHA256 摘要的問題是它們很長。所以我想出了這個:
function mdsha( input ) { return md5( sha256( input ) ); }
所以我可以保留 MD5 摘要長度並避免惡意衝突。
我的方案合理嗎?
您的方案可能是合理的,因為 SHA-256 雜湊將輸入限制為 MD5 雜湊函式。如果不是這樣,則可能(儘管非常困難)由於中斷而產生碰撞。
通常,簡單地使用 SHA-256 輸出的最左邊 128 位更安全。SHA-3 - 或者更確切地說 SHAKE256 - 如果可用的話會更好。
請記住,由於生日問題,128 位在抗碰撞性方面相對較小。生日問題會將碰撞阻力降低到輸出大小的一半。這可能不是直接的問題,但您可能需要考慮升級您的協議以使用更大的雜湊值。