func
crc32_test()
{
mp := make(map[uint32]byte)
crc32tab := crc32.MakeTable(crc32.IEEE)
for i := 1; i <= 99999999; i++ {
mp[crc32.Checksum([]byte(strconv.Itoa(i)), crc32tab)] = 1
//mp[crc32.ChecksumIEEE([]byte(strconv.Itoa(i)))] = 1
}
fmt.Println(len(mp))
}
func adler32_test() {
mp := make(map[uint32]byte)
for i := 1; i <= 99999999; i++ {
mp[adler32.Checksum([]byte(strconv.Itoa(i)))] = 1
}
fmt.Println(len(mp))
}
func crc64_test() {
mp := make(map[uint64]byte)
//算到199999999依然没有重复,已经5G内存
crc64_tab := crc64.MakeTable(crc64.ISO)
for i := 1; i <= 99999999; i++ {
mp[crc64.Checksum([]byte(strconv.Itoa(i)), crc64_tab)] = 1
}
fmt.Println(len(mp))
}
本文通过测试不同哈希算法(CRC32、Adler32及CRC64)在整数序列上的表现,探讨了这些算法产生哈希冲突的可能性。测试结果显示,在大量数据输入的情况下,CRC32与Adler32算法均未出现明显的哈希碰撞现象。

1891

被折叠的 条评论
为什么被折叠?



