Hash
使用 XOR 移位對散列字節有效嗎?
異或移位字節以產生雜湊/校驗和是否有效?我找不到任何證據表明它比 CRC32 碰撞更多。
這段程式碼的執行速度似乎比 Java 的 util.zip.CRC32 類快 40 倍。
public static long hash64( byte[] bytes ) { long x = 1; for ( int i = 0; i < bytes.length; i++ ) { x ^= bytes[ i ]; x ^= ( x << 21 ); x ^= ( x >>> 35 ); x ^= ( x << 4 ); } return x; } public static int hash32( byte[] bytes ) { int x = 1; for ( int i = 0; i < bytes.length; i++ ) { x ^= bytes[ i ]; x ^= ( x << 13 ); x ^= ( x >>> 17 ); x ^= ( x << 5 ); } return x; }