一般而言雜湊值都是固定長度的
但是我有個疑惑
一個要進行雜湊前的字串本來長度就可無限長
也就是說在進行雜湊前原文並沒有限制長度為何
但是出來的結果永遠都是一樣的長度
這樣不是很奇怪嗎?
那麼理論上所有出來的結果為固定長度的雜湊函數都應該會有碰撞(Collision)情形產生呀
但是據中文維基百科(https://zh.wikipedia.org/wiki/%E6%95%A3%E5%88%97)
部分雜湊演算法沒有碰撞情形產生
但又根據英文維基百科(https://en.wikipedia.org/wiki/Collision_resistance)
“Every hash function with more inputs than outputs will necessarily have
collisions.”
“每一個雜湊函數當輸入多於輸出必然產生碰撞”
又從http://crypto.nknu.edu.tw/textbook/chap4.pdf找到對於Collision Resistance的定義
“找不到兩個相異的訊息M1與M2會被計算出相同的輸出訊息指紋”
也就是找不到兩個不同的原文,其經過同一雜湊函數後會是相同的雜湊值
這搞得我好頭疼
所以每一個雜湊函數是否都具有碰撞?還是部份雜湊函數不具有碰撞?
謝謝