ฟังก์ชันแฮช | MiB/วินาที | วงจร/แฮช | วงจร/แผนที่ | ขนาด | ปัญหาด้านคุณภาพ |
---|---|---|---|---|---|
การบริจาค32 | 11149460.06 | 4.00 น | - | 13 | เมล็ดที่ไม่ดี 0 ทดสอบ NOP |
ไม่ทำอะไรเลย64 | 11787676.42 | 4.00 น | - | 13 | เมล็ดที่ไม่ดี 0 ทดสอบ NOP |
บริจาคอะไร128 | 11745060.76 | 4.06 | - | 13 | เมล็ดที่ไม่ดี 0 ทดสอบ NOP |
NOP_OAAT_read64 | 11372846.37 | 14.00 น | - | 47 | ทดสอบ นพ |
แบดแฮช | 769.94 | 73.97 | - | 47 | เมล็ดที่ไม่ดี 0 การทดสอบล้มเหลว |
ซัมแฮช | 10699.57 | 29.53 | - | 363 | เมล็ดที่ไม่ดี 0 การทดสอบล้มเหลว |
ซัมแฮช32 | 42877.79 | 23.12 | - | 863 | UB ทดสอบล้มเหลว |
คูณ_กะ | 8026.77 | 26.05 | 226.80 (8) | 345 | เมล็ดที่ไม่ดี & 0xfffffff0 ล้มเหลวในการทดสอบส่วนใหญ่ |
pair_multiply_shift | 3716.95 | 40.22 | 186.34 (3) | 609 | ไม่ผ่านการทดสอบส่วนใหญ่ |
- | |||||
ซีอาร์ซี32 | 383.12 | 134.21 | 257.50 (11) | 422 | ไม่ปลอดภัย, การชนกัน 8590x, การกระจาย, PerlinNoise |
md5_32 | 350.53 | 644.31 | 894.12 (10) | 4419 | |
md5_64 | 351.01 | 656.67 | 897.43 (12) | 4419 | |
md5-128 | 350.89 | 681.88 | 894.03 (13) | 4419 | |
sha1_32 | 353.03 | 1385.80 | 1759.94 (5) | 5126 | สติ, วงจรต่ำ 32, กระจาย 36.6% |
sha1_64 | 353.03 | 1385.80 | 1759.94 (5) | 5126 | สติ, วงจรต่ำ 32, กระจาย 36.6% |
sha1-160 | 364.95 | 1470.55 | 1794.16 (13) | 5126 | หวี/วงจรต่ำ32 |
sha2-224 | 147.13 | 1354.81 | 1,589.92 (12) | หวีต่ำ32 | |
sha2-224_64 | 147.60 | 1360.10 | 1620.93 (13) | วงจรต่ำ32 | |
sha2-256 | 147.80 | 1374.90 | 1606.06 (16) | ||
sha2-256_64 | 148.01 | 1376.34 | 1624.71 (16) | ||
sha1ni | 1601.21 | 174.16 | 397.28 (6) | 989 | ไม่ปลอดภัย ความมีสติ การเรียงสับเปลี่ยน ค่าศูนย์ เฉพาะเครื่องจักร |
sha1ni_32 | 1576.17 | 174.04 | 405.56 (6) | 989 | เฉพาะเครื่อง |
sha2ni-256 | 1527.38 | 184.35 | 404.40 (4) | 4241 | ไม่ปลอดภัย ความมีสติ การเรียงสับเปลี่ยน ค่าศูนย์ เฉพาะเครื่องจักร |
sha2ni-256_64 | 1501.85 | 186.20 | 407.96 (5) | 4241 | ค่าศูนย์ เฉพาะเครื่อง |
เบลค3_c | 1288.84 | 357.69 | 582.89 (6) | ไม่มีการพกพาแบบ 32 บิต | |
rmd128 | 290.90 | 710.49 | 965.55 (6) | ||
ริงกิต 160 | 202.16 | 1,045.79 | 1287.74 (16) | ไซคลิก hi32 | |
rmd256 | 364.81 | 584.86 | 835.02 (11) | ||
edonr224 | 864.69 | 303.42 | 526.94 (6) | ||
edonr256 | 847.85 | 305.79 | 510.01 (4) | ||
เบลค2s-128 | 295.30 | 698.09 | 1,059.24 (51) | ||
เบลค2s-160 | 215.01 | 1,026.74 | 1239.54 (11) | ||
เบลค2s-224 | 207.06 | 1,063.86 | 1236.50 (20) | ||
เบลค2s-256 | 215.28 | 1014.88 | 1230.38 (28) | ||
เบลค2s-256_64 | 211.52 | 1,044.22 | 1228.43 (8) | ||
เบลค2บี-160 | 356.08 | 1236.84 | 1458.15 (12) | ||
เบลค2บี-224 | 356.59 | 1228.50 | 1425.87 (16) | ||
เบลค2บี-256 | 355.97 | 1232.22 | 1443.31 (19) | ||
เบลค2b-256_64 | 356.97 | 1222.76 | 1435.03 (9) | ||
asconhashv12 | 144.98 | 885.02 | 1324.23 (38) | 4341 | |
asconhashv12_64 | 159.68 | 386.90 | 480.86 (4) | 6490 | |
sha3-256 | 100.58 | 3877.18 | 4159.79 (37) | เพอร์ลินนอยส์ | |
sha3-256_64 | 100.57 | 3909.00 | 4174.63 (16) | เพอร์ลินนอยส์ | |
ฮัสเช2 | 2773.89 | 64.35 | 282.30 (3) | 445 | การเรียงสับเปลี่ยน, สองไบต์, ศูนย์, เมล็ดพืช |
poly_1_mersenne | 1369.21 | 61.59 | 248.86 (4) | 479 | ไม่ผ่านการทดสอบส่วนใหญ่ |
poly_2_mersenne | 1364.03 | 70.30 | 261.00 (6) | 479 | |
poly_3_mersenne | 1342.82 | 80.22 | 268.79 (2) | 479 | |
poly_4_mersenne | 1343.19 | 89.13 | 277.52 (3) | 479 | |
การจัดตาราง32 | 5781.16 | 40.00 น | 241.79 (10) | 848 | การชนกัน |
การจัดตาราง | 7875.01 | 39.95 | 249.49 (3) | 554 | |
crc32_hw | 6244.38 | 41.23 | 226.80 (2) | 653 | ไม่ปลอดภัย, อคติ 100%, การชน, การกระจาย, BIC, เฉพาะเครื่อง (SSE4.2/NEON) |
crc32_hw1 | 7569.29 | 49.07 | 233.75 (3) | 671 | ไม่ปลอดภัย, อคติ 100%, การชน, การกระจาย, BIC, เฉพาะเครื่อง (x86 SSE4.2) |
crc64_hw | 6143.62 | 40.48 | 223.13 (2) | 652 | ไม่ปลอดภัย, อคติ 100%, การชน, การกระจาย, BIC, เฉพาะเครื่อง (SSE4.2/NEON) |
crc32_pclmul | - | - | - | ไม่ปลอดภัย, อคติ 100%, การชน, การกระจาย, BIC, เฉพาะเครื่อง (x86 SSE4.2+PCLMUL) | |
o1hash | 11629440.57 | 18.15 | 199.35 (2) | 101 | ไม่ปลอดภัย ไม่มีเมล็ด เป็นศูนย์ ไม่ผ่านการทดสอบทั้งหมด |
ฟีโบนัชชี | 16878.32 | 22.94 | 803.18 (15) | 1692 | UB เป็นศูนย์ ไม่ผ่านการทดสอบทั้งหมด |
FNV1a | 760.52 | 73.83 | 254.29 (5) | 204 | เมล็ดไม่ดี เป็นศูนย์ ไม่ผ่านการทดสอบทั้งหมด |
FNV1A_โทเทนชิฟฟ์ | 6274.78 | 26.23 | 251.13 (2) | 270 | UB เป็นศูนย์ ไม่ผ่านการทดสอบทั้งหมด |
FNV1A_ปิปปิป_ยูริอิ | 6172.14 | 27.55 | 244.80 (2) | 147 | UB มีสติ ไม่ผ่านการทดสอบทั้งหมด |
FNV1a_YT | 13486.49 | 30.50 | 237.43 (4) | 321 | bad seed UB ไม่ผ่านการทดสอบทั้งหมด |
FNV2 | 6171.60 | 32.20 | 208.59 (4) | 278 | ไม่ผ่านการทดสอบทั้งหมด |
FNV64 | 774.37 | 72.43 | 201.15 (2) | 79 | ไม่ผ่านการทดสอบทั้งหมด |
FNV128 | 390.14 | 136.42 | 289.00 (3) | 171 | ไม่ผ่านการทดสอบทั้งหมด |
k-hash32 | 2230.42 | 53.05 | 264.64 (3) | 808 | ไม่ปลอดภัย, เป็นศูนย์, UB, มีเมล็ดที่ไม่ดี, ไม่ผ่านการทดสอบทั้งหมด |
k-hash64 | 2451.88 | 48.66 | 249.44 (2) | 609 | ไม่ปลอดภัย, เป็นศูนย์, UB, มีเมล็ดที่ไม่ดี, ไม่ผ่านการทดสอบทั้งหมด |
เฟลทเชอร์2 | 15552.61 | 20.61 | 335.31 (3) | 248 | เมล็ดที่ไม่ดี 0, UB ไม่ผ่านการทดสอบทั้งหมด |
เฟลทเชอร์4 | 15556.93 | 20.60 | 358.60 (3) | 371 | เมล็ดที่ไม่ดี 0, UB ไม่ผ่านการทดสอบทั้งหมด |
เบิร์นสไตน์ | 1,045.97 | 58.31 | 225.78 (3) | 41 | เมล็ดที่ไม่ดี 0 ไม่ผ่านการทดสอบทั้งหมด |
เอสดีบีเอ็ม | 784.83 | 68.57 | 222.68 (5) | 41 | เมล็ดที่ไม่ดี 0 ไม่ผ่านการทดสอบทั้งหมด |
x17 | 748.75 | 74.13 | 236.00 (10) | 79 | มีอคติ 99.98% ไม่ผ่านการทดสอบทั้งหมด |
เสรีภาพ | 628.66 | 84.95 | 225.07 (4) | 37 | ไม่ปลอดภัย มีอคติ 100% ไม่ผ่านการทดสอบทั้งหมด มีเมล็ดที่ไม่ดี |
จีซีซี | 611.69 | 86.47 | 231.51 (5) | 39 | ไม่ปลอดภัย มีอคติ 100% ไม่ผ่านการทดสอบทั้งหมด มีเมล็ดที่ไม่ดี |
เจนกินส์OOAT | 627.64 | 107.04 | 252.79 (3) | 153 | เมล็ดที่ไม่ดี 0 มีอคติ 53.5% ไม่ผ่านการทดสอบทั้งหมด |
เจนกินส์OOAT_perl | 608.10 | 94.17 | 254.09 (4) | 65 | เมล็ดที่ไม่ดี 0, อคติ 1.5-11.5%, การชน 7.2 เท่า, BIC, LongNeighbors |
ไมโครโอเอเอที | 701.35 | 76.68 | 251.01 (3) | 68 | อคติ 100%, กระจาย, BIC |
เพียร์สันแฮช64 | 434.17 | 124.14 | 230.79 (4) | Avalanche, Seed, SSSE3 เท่านั้น MSVC ที่เสียหาย | |
เพียร์สันแฮช128 | 434.23 | 121.34 | 221.03 (7) | Avalanche, Seed, SSSE3 เท่านั้น MSVC ที่เสียหาย | |
pearsonhash256 | 444.08 | 119.11 | 229.75 (4) | Avalanche, Seed, SSSE3 เท่านั้น MSVC ที่เสียหาย | |
VHASH_32 | 13053.40 | 65.84 | 289.86 (3) | 1231 | สติ, เมล็ดพันธุ์, MomentChi2 |
VHASH_64 | 13465.50 | 63.88 | 286.38 (5) | 1231 | สติ, เมล็ดพันธุ์, เบาบาง |
ฟาร์ช32 | 27038.23 | 66.88 | 278.89 (5) | 944 | ไม่ปลอดภัย: ผนวกศูนย์, การชน + อคติ, MomentChi2, LongNeighbors |
ฟาร์ช64 | 13829.32 | 112.46 | 332.59 (3) | 944 | ไม่ปลอดภัย: ผนวกศูนย์, การชน + อคติ, MomentChi2, LongNeighbors |
ฟาร์ช128 | 6878.88 | 233.35 | 384.85 (3) | 944 | ไม่ปลอดภัย: ผนวกศูนย์, การชน + อคติ, อนุญาต, รวม, 2 ไบต์, ศูนย์, PerlinNoise |
ฟาร์ช256 | 3467.37 | 440.40 | 593.57 (5) | 944 | ไม่ปลอดภัย: ผนวกศูนย์, การชน + อคติ, อนุญาต, รวม, 2 ไบต์, ศูนย์, PerlinNoise |
jodyhash32 | 1794.34 | 41.12 | 235.12 (4) | 102 | อคติ, การชน, distr, BIC LongNeighbors |
jodyhash64 | 4813.10 | 40.72 | 239.22 (6) | 118 | อคติ, การชน, distr, BIC, LongNeighbors |
ค้นหา3 | 2475.35 | 39.65 | 240.10 (3) | 341 | UB, อคติ 28%, การชน, การกระจาย 30%, BIC |
เร็วมาก | 2058.22 | 49.56 | 254.12 (3) | 210 | UB, เมล็ดที่ไม่ดี 0, อคติ 91%, การชนกัน 5273.01x, การกระจาย 37%, BIC |
บ่นOAAT | 506.66 | 103.33 | 236.89 (3) | 47 | เมล็ดที่ไม่ดี 0, การชน, 99.998% distr., BIC, LongNeighbors |
อึ8 | 3041.14 | 37.25 | 247.87 (4) | 342 | UB, อคติ 2.42%, การชน, การกระจาย 2% |
บ่น1 | 2027.85 | 48.51 | 253.34 (3) | 358 | UB, 1 เมล็ดที่ไม่ดี, การชน 511x, Diff, BIC |
บ่น2 | 3089.18 | 41.22 | 238.42 (4) | 358 | UB, 1 เมล็ดที่ไม่ดี, อคติ 1.7%, คอลลาจ 81x, การกระจาย 1.7%, BIC |
เมอร์เมอร์2เอ | 3087.98 | 45.90 | 238.54 (4) | 407 | UB, 1 เมล็ดที่ไม่ดี, อคติ 12.7%, LongNeighbors |
มูร์มูร์2บี | 5919.38 | 38.18 | 215.96 (3) | 433 | UB, อคติ 1.8%, การชน, การกระจาย 3.4%, BIC |
มูร์มูร์2ซี | 3810.98 | 49.09 | 218.51 (3) | 444 | UB, 2^32 เมล็ดที่ไม่ดี, อคติ 91%, การชน, distr, BIC, LongNeighbors |
มูร์มูร์3เอ | 2982.67 | 49.08 | 245.78 (4) | 351 | UB, 1 เมล็ดที่ไม่ดี, โมเมนต์ Chi2 69 |
PMurHash32 | 3005.85 | 48.88 | 242.38 (3) | พ.ศ. 2405 | 1 เมล็ดที่ไม่ดี Moment Chi2 69 |
มูร์มูร์3ซี | 4833.18 | 56.87 | 250.47 (6) | 859 | UB, LongNeighbors, ข้อความ, DiffDist |
mirhash32low | 6145.39 | 36.95 | 235.09 (4) | 1112 | UB, 4 เมล็ดเสีย, Cyclic, LongNeighbors, เฉพาะเครื่อง (ต่างกัน 32/64) |
PMPML_32 | 6639.68 | 45.33 | 257.45 (3) | 1084 | หิมะถล่ม >512, ไม่ได้เมล็ด: Seed, BIC, MomentChi2, PerlinNoise |
PMPML_64 | 9833.77 | 50.00 น | 251.64 (6) | 1305 | ไม่ได้เมล็ด: Seed, MomentChi2, BIC |
xxHash32 | 5865.17 | 49.20 | 242.74 (3) | 738 | LongNeighbors การชนกับความแตกต่าง 4 บิต MomentChi2 220 |
เมโทรแฮช64 | 14741.56 | 39.44 | 215.76 (2) | 624 | UB, ลองเพื่อนบ้าน, BIC |
เมโทรแฮช64_1 | 14298.77 | 40.31 | 223.25 (4) | 624 | UB, LongNeighbors, BIC, MomentChi2 |
metrohash64crc_1 | 6929.69 | 44.65 | 223.68 (3) | 632 | UB, Cyclic 8/8 ไบต์, DiffDist, BIC, MomentChi2, เฉพาะเครื่อง (SSE4.2/NEON) |
metrohash64crc_2 | 8150.65 | 43.72 | 219.45 (5) | 632 | UB, Cyclic 8/8 ไบต์, DiffDist, BIC, เฉพาะเครื่อง (SSE4.2/NEON) |
cmetrohash64_1o | 14921.73 | 38.95 | 213.25 (2) | 3506 | UB, LongNeighbors, BIC, MomentChi2 |
ซีเมโทรแฮช64_1 | 14151.73 | 40.90 | 211.89 (2) | 652 | UB, LongNeighbors, BIC, MomentChi2 |
เมือง64noSeed | 14209.19 | 31.80 | 225.90 (5) | 1,038 | หิมะถล่ม, เบาบาง, TwoBytes, MomentChi2, Seed |
ซิตี้64 | 13887.84 | 46.32 | 239.77 (3) | 1120 | เบาบาง, สองไบต์ |
t1ha1_64le | 13442.64 | 31.41 | 219.58 (3) | 517 | หิมะถล่ม |
t1ha1_64be | 11586.02 | 32.74 | 232.55 (3) | 555 | หิมะถล่ม |
t1ha0_32le | 7401.21 | 48.27 | 238.99 (3) | 509 | เบาบาง, เพื่อนบ้านยาว |
t1ha0_32be | 6217.37 | 50.66 | 244.51 (3) | 533 | เบาบาง, เพื่อนบ้านยาว |
t1ha2_stream | 14011.63 | 80.72 | 275.17 (3) | 1665 | เบาบาง, เรียงสับเปลี่ยน, LongNeighbors |
t1ha2_stream128 | 13136.06 | 97.80 | 306.11 (7) | 1665 | เบาบาง, เรียงสับเปลี่ยน, LongNeighbors |
ไอสนิฮาช | 5579.32 | 56.83 | 258.71 (5) | 1209 | ไม่ผ่านการทดสอบหลายรายการ เฉพาะเครื่องจักร (x64 AES-NI) |
ฟาลคาช | 50631.69 | 123.02 | 322.14 (7) | 264 | เบาบาง LongNeighbors เฉพาะเครื่อง (x64 AES-NI) |
เหมียวแฮช | 29969.40 | 64.96 | 274.29 (4) | พ.ศ. 2307 | เบาบาง กลับด้านได้ เฉพาะเครื่องจักร (x64 AES-NI) |
เหมียวHash64low | 29485.59 | 65.98 | 278.05 (3) | พ.ศ. 2307 | เบาบาง กลับด้านได้ เฉพาะเครื่องจักร (x64 AES-NI) |
เหมียวHash32low | 26944.58 | 65.95 | 292.79 (9) | พ.ศ. 2307 | เบาบาง กลับด้านได้ เฉพาะเครื่องจักร (x64 AES-NI) |
- | |||||
tifuhash_64 | 35.60 | 1679.52 | 1212.75 (15) | 276 | วงจรต่ำ32 |
ฟลอปปี้ฮาช | 35.72 | 1868.92 | 1411.07 (7) | 623 | |
ตัวแยกลำแสง | 789.22 | 682.45 | 1150.33 (26) | 4203 | ยูบี |
ดิสโก้แฮช1 | 4131.12 | 199.00 | 398.35 (5) | 1294 | |
ดิสโก้แฮช1-128 | 4072.95 | 234.17 | 438.43 (5) | 1294 | |
ดิสโก้แฮช2 | 3986.52 | 207.52 | 421.99 (2) | 1294 | |
ดิสโก้แฮช2-128 | 4094.73 | 236.61 | 433.35 (4) | 1294 | |
ดิสโก้นอง | 3698.45 | 399.67 | 597.78 (9) | เมล็ดที่ไม่ดี | |
แชสกี้ | 1143.05 | 113.70 | 294.43 (4) | 1609 | เพอร์ลินนอยส์ |
ซิบแฮช | 943.53 | 147.15 | 338.74 (4) | 1,071 | |
HalfSipHash | 1141.57 | 79.65 | 263.96 (3) | 700 | ศูนย์ |
ดีโอ๊ต | 743.81 | 85.62 | 231.22 (3) | 237 | |
เพียร์สันบาช64 | 1794.83 | 97.80 | 268.90 (8) | 683 | |
เพียร์สันบาช128 | 1691.62 | 104.57 | 272.38 (4) | 1134 | |
pearsonbash256 | 1442.59 | 126.04 | 309.34 (4) | 844 | |
prvhash64_64m | 3077.18 | 47.31 | 241.92 (3) | 349 | |
prvhash64_64 | 3015.08 | 48.03 | 240.64 (3) | 384 | |
prvhash64_128 | 3353.81 | 67.64 | 266.32 (2) | 718 | |
prvhash64s_64 | 6591.34 | 273.50 | 464.65 (3) | 2640 | |
prvhash64s_128 | 6581.40 | 333.83 | 528.07 (5) | 2799 | |
ซิพแฮช13 | 1812.75 | 106.56 | 310.76 (5) | 778 | อคติ 0.9% |
ทีซิป | 4233.17 | 53.31 | 249.19 (3) | 519 | !msvc |
ซีแฮช | 8261.80 | 58.94 | 256.08 (4) | 871 | PerlinNoise, !msvc |
seahash32low | 8266.17 | 58.90 | 290.21 (16) | 871 | PerlinNoise 32, !msvc |
การปะทะกัน | 18703.04 | 70.19 | 282.12 (6) | 1809 | เสียง Perlin เฉพาะเครื่องจักร (x64 SSE4.2) |
ทางหลวงแฮช64 | 6242.58 | 99.55 | 248.41 (3) | 2546 | |
มูร์เมอร์3F | 7623.44 | 52.69 | 221.87 (3) | 699 | ยูบี |
แม่ | 9563.99 | 34.99 | 228.55 (5) | พ.ศ. 2455 | UB เมล็ดเสียเยอะไป เฉพาะเครื่อง (ต่างกัน 32/64) |
มัมโลว์ | 9261.89 | 36.17 | 247.66 (4) | พ.ศ. 2455 | UB 5 เมล็ดที่ไม่ดี |
xmsx32 | 2039.10 | 46.39 | 249.30 (7) | 192 | 2 เมล็ดที่ไม่ดี |
มิราช | 6139.07 | 37.02 | 209.47 (3) | 1112 | UB, 2^36 เมล็ดเสีย, LongNeighbors, เฉพาะเครื่องจักร (ต่างกัน 32/64) |
มิรฮาชสตริก | 3549.01 | 49.99 | 224.91 (2) | 1112 | |
mirhashstrict32low | 3441.35 | 50.60 | 247.19 (3) | 1112 | 1 เมล็ดที่ไม่ดี MomentChi2 9 |
ฟาสต์แฮช32 | 6128.28 | 40.30 | 241.64 (4) | 566 | ยูบี |
fasthash64 | 5818.92 | 38.70 | 220.74 (2) | 509 | ยูบี |
เอสนี | 31232.34 | 29.21 | 230.14 (4) | 519 | เฉพาะเครื่อง (x64 AES-NI) |
aesni-ต่ำ | 31221.14 | 29.64 | 226.18 (3) | 519 | เฉพาะเครื่อง (x64 AES-NI) |
mx3 | 9034.90 | 48.71 | 227.89 (2) | 734 | ยูบี |
เพนกีแฮช | 13428.80 | 74.24 | 275.42 (5) | 421 | |
ซิตี้32 | 5551.28 | 54.40 | 261.64 (2) | 1319 | |
ซิตี้64โลว์ | 13904.10 | 46.24 | 260.08 (3) | 1120 | |
ซิตี้128 | 14031.96 | 89.09 | 290.05 (10) | 1841 | |
ซิตี้ซีอาร์ซี128 | 7916.44 | 55.50 | 240.79 (2) | 295 | |
ฟาร์มแฮช32 | 21755.58 | 47.54 | 258.35 (3) | 11489 | เฉพาะเครื่อง (x64 SSE4/AVX) |
ฟาร์มแฮช64 | 12845.53 | 47.11 | 251.58 (3) | 3758 | |
ฟาร์มแฮช128 | 13913.65 | 70.25 | 263.06 (3) | 163 | |
farmhash32_c | 21601.86 | 47.38 | 273.00 (3) | 762 | เฉพาะเครื่อง (x64 SSE4/AVX) |
farmhash64_c | 12834.10 | 47.23 | 246.20 (2) | 3688 | |
ฟาร์มแฮช128_c | 13753.24 | 68.96 | 263.76 (3) | พ.ศ. 2433 | |
เมโทรแฮช64_2 | 14316.37 | 40.23 | 218.28 (3) | 627 | ยูบี ลองเพื่อนบ้าน |
ซีเมโทรแฮช64_2 | 14294.26 | 40.76 | 221.40 (4) | 655 | เพื่อนบ้านยาว |
เมโทรแฮช128 | 15634.66 | 73.28 | 261.23 (4) | 773 | ยูบี ลองเพื่อนบ้าน |
เมโทรแฮช128_1 | 15806.97 | 72.30 น | 260.90 (4) | 773 | ยูบี ลองเพื่อนบ้าน |
เมโทรแฮช128_2 | 15822.60 | 72.30 น | 255.34 (3) | 773 | ยูบี ลองเพื่อนบ้าน |
metrohash128crc_1 | 8009.23 | 78.72 | 281.55 (13) | 723 | UB เฉพาะเครื่องจักร (SSE4.2/NEON) |
metrohash128crc_2 | 7878.22 | 79.90 | 275.22 (4) | 723 | UB เฉพาะเครื่องจักร (SSE4.2/NEON) |
xxHash64 | 12108.87 | 49.78 | 228.83 (2) | 1999 | |
น่ากลัว32 | 13108.95 | 56.27 | 255.36 (3) | 2221 | ยูบี |
น่ากลัว64 | 13529.36 | 58.76 | 236.31 (3) | 2221 | ยูบี |
น่ากลัว128 | 11781.35 | 58.91 | 242.91 (3) | 2221 | ยูบี |
น่ากลัวV2_32 | 13529.16 | 55.55 | 248.37 (4) | 2069 | |
น่ากลัวV2_64 | 12678.82 | 56.71 | 243.21 (4) | 2069 | |
น่ากลัวV2_128 | 13512.82 | 58.33 | 244.56 (5) | 2069 | |
อาแฮช64 | 9862.62 | 27.32 | 181.68 (1) | 412 | สนิม |
xxh3 | 21033.55 | 29.48 | 226.77 (4) | 744 | DiffDist บิต 7 w. 36 บิต BIC |
xxh3low | 17093.19 | 30.57 | 242.07 (7) | 756 | |
xxh128 | 18802.16 | 32.37 | 234.30 (4) | 1012 | |
xxh128ต่ำ | 18833.05 | 32.30 น | 234.68 (3) | 1012 | |
t1ha2_atonce | 13854.44 | 37.92 | 233.54 (2) | 541 | ศูนย์ต่ำ3 |
t1ha2_atonce128 | 14148.42 | 55.70 | 253.74 (6) | 613 | เพื่อนบ้านยาว |
t1ha0_aes_noavx | 27231.59 | 37.70 | 236.10 (3) | 925 | LongNeighbors เฉพาะเครื่อง (x86 AES-NI) |
t1ha0_aes_avx1 | 22714.85 | 48.12 | 226.52 (16) | 843 | LongNeighbors เฉพาะเครื่อง (x64 AVX.txt) |
t1ha0_aes_avx2 | 56919.46 | 36.70 | 233.14 (2) | 792 | LongNeighbors เฉพาะเครื่อง (x64 AVX2) |
wyhash32 | 2532.89 | 48.40 | 484.57 (1) | 426 | 4 เมล็ดเสียและแตก 32 บิต |
wyhash32low | 22393.77 | 29.04 | 243.40 (3) | 474 | 5 เมล็ดที่ไม่ดี |
ไงล่ะ | 22540.23 | 28.87 | 236.16 (8) | 474 | |
รวดเร็ว | 23789.79 | 22.80 | 138.71 (7) | 574 | |
Rapidhash_unrolled | 23892.88 | 23.41 | 139.47 (12) | 782 | |
umash32 | 21427.57 | 42.12 | 255.55 (5) | 1530 | |
umash32_hi | 21483.12 | 42.65 | 251.09 (4) | 1530 | |
umash64 | 21690.08 | 41.67 | 238.01 (4) | 1530 | |
umash128 | 13211.88 | 43.37 | 237.40 (3) | 1530 | |
พักครึ่งเวลา_hash64 | 4735.63 | 99.90 | 315.34 (3) | 2911 | |
พักครึ่งเวลา_hash128 | 17534.53 | 97.97 | 311.10 (4) | 2462 | |
พักครึ่งเวลา_hash256 | 18003.39 | 99.46 | 315.09 (3) | 2622 | |
ครึ่งเวลา_hash512 | 10890.15 | 118.05 | 333.45 (3) | 3550 | |
nmhash32 | 12969.62 | 55.88 | 265.69 (4) | 2445 | |
nmhash32x | 12775.08 | 42.66 | 246.05 (3) | 1494 | |
k-hashv32 | 9181.87 | 52.76 | 245.14 (3) | 1280 | |
k-hashv64 | 7850.92 | 46.94 | 193.94 (1) | 1279 | |
โคมิฮาช | 12242.78 | 33.02 | 236.07 (2) | 1323 | |
โพลีเมอร์ | 9676.33 | 42.70 | 246.53 (3) | 1128 |
ตัวแปรตารางที่จัดเรียงได้:
ค่าเริ่มต้น AMD Ryzen 5 3350G 3.6GHz
อินเทล i5-2300 2.8GHz
Intel i5-2300 2.8GHz 32bit
เอเอ็มดี Ryzen 3 3200U 3.5GHz
แมคแอร์ i7-4650
Cortex-A53 2GHz (โซนี่ XPeria L4)
ฉันเพิ่มแฮชที่สนับสนุน SSE และตัวแปร Intel/arm CRC32-C, AES และ SHA HW ที่รวดเร็ว ดู https://github.com/aappleby/smhasher/wiki เก่า ส้อมที่ได้รับการปรับปรุง แต่ไม่ได้รับการดูแล https://github.com/demerphq/smhasher และเวอร์ชันปรับปรุงใหม่ SMHAsher3 https://gitlab.com/ fwojcik/smhasher3.
ดังนั้นฟังก์ชันแฮชที่เร็วที่สุดบน x86_64 ที่ไม่มีปัญหาด้านคุณภาพคือ:
Rapidhash (ปรับปรุง wyhash)
xxh3low
ไงล่ะ
umash (แม้กระทั่งสากล!)
อาแฮช64
t1ha2_atonce
โคมิฮาช
FarmHash ( ไม่ใช่แบบพกพา เฉพาะเครื่องด้วย: 64 กับ 32 บิต, gcc เก่า ... )
พักครึ่งเวลา_hash128
น่ากลัว32
เพนกีแฮช
nmhash32
mx3
MUM/mir ( ผลลัพธ์ที่แตกต่างกันในส่วนโค้ง 32/64 บิต มีเมล็ดที่ไม่ดีมากมายให้กรองออก )
ฟาสต์แฮช32
ฟังก์ชันแฮชสำหรับตารางสัญลักษณ์หรือตารางแฮชโดยทั่วไปจะใช้แฮชแบบ 32 บิต สำหรับฐานข้อมูล ระบบไฟล์ และเช็คซัมไฟล์โดยทั่วไปจะเป็น 64 หรือ 128 บิต สำหรับสกุลเงินดิจิทัลตอนนี้เริ่มต้นด้วย 256 บิต
ขนาดคีย์มัธยฐานโดยทั่วไปใน perl5 คือ 20 ซึ่งเป็นขนาดที่พบบ่อยที่สุด 4 คล้ายกับภาษาไดนามิกอื่นๆ ทั้งหมด ดูgithub.com/rurban/perl-hash-stats
เมื่อใช้ในตารางแฮช แคชคำสั่งมักจะเอาชนะ CPU และทรูพุตที่วัดได้ที่นี่ ในการทดสอบของฉัน FNV1A
ที่เล็กที่สุดจะเอาชนะ crc32_hw1
ที่เร็วที่สุดด้วยตารางแฮช Perl 5 แม้ว่าฟังก์ชันแฮชที่แย่กว่านั้นจะนำไปสู่การชนกันมากขึ้น ความได้เปรียบด้านความเร็วโดยรวมและความสามารถอินไลน์ก็ยังดีกว่าคุณภาพที่แย่กว่าเล็กน้อย ดูเช่นการวิเคราะห์เจ็ดมิติของวิธีการแฮชและผลกระทบต่อการประมวลผลแบบสอบถามสำหรับภาพรวมโดยย่อของกลยุทธ์ตารางแฮชที่ดีที่สุด โดยยืนยันว่า Mult hashing ที่ง่ายที่สุด (bernstein, FNV*, x17, sdbm) เอาชนะฟังก์ชันแฮชที่ "ดีกว่า" เสมอ (Tabulation, Murmur, Farm, ...) เมื่อใช้ในตารางแฮช
ฟังก์ชันแฮชด่วนที่ทดสอบที่นี่แนะนำให้เร็วพอๆ กับการแยกย่อยไฟล์และฐานข้อมูลที่ใหญ่กว่า แต่ไม่ใช่สำหรับตารางแฮช 32 บิต "ปัญหาด้านคุณภาพ" นำไปสู่การกระจายที่สม่ำเสมอน้อยลง เช่น การชนกันมากขึ้นและประสิทธิภาพที่แย่ลง แต่ไม่ค่อยเกี่ยวข้องกับการโจมตีด้านความปลอดภัยที่แท้จริง เพียงการทดสอบ AppendZeroes ที่มีสติครั้งที่ 2 กับ �
ที่นั้นมีความเกี่ยวข้องกับความปลอดภัย
MiB/วินาที: ค่าเฉลี่ยของการทดสอบความเร็วคีย์จำนวนมากสำหรับการจัดตำแหน่ง 0-7 ด้วยคีย์ 262144 ไบต์ ยิ่งสูงยิ่งดี
cycl./hash: ค่าเฉลี่ยของการทดสอบความเร็วคีย์ขนาดเล็กสำหรับคีย์ 1-31 ไบต์ ยิ่งเล็กยิ่งดี
cycl./map: ผลลัพธ์ของการทดสอบ Hashmap สำหรับ /usr/dict/words ที่มีการสืบค้น hashmap C++ ที่รวดเร็ว โดยมีค่าเบี่ยงเบนมาตรฐานอยู่ในวงเล็บ นี่เป็นการทดสอบความไม่ต่อเนื่องของฟังก์ชันแฮชในทางปฏิบัติ (ดูขนาด) ยิ่งเล็กยิ่งดี
ขนาด: ขนาดวัตถุเป็นไบต์บน AMD64 สิ่งนี้ส่งผลต่อความไม่ต่อเนื่องใน เช่น ตารางแฮช ยิ่งเล็กยิ่งดี
ปัญหาด้านคุณภาพ: ดูความล้มเหลวในเอกสารที่เชื่อมโยง ยิ่งน้อยยิ่งดี
https://github.com/martinus/better-faster-stronger-mixer มิกเซอร์ และในบล็อกของเขามีเกณฑ์มาตรฐานแฮชแมป C ++ ที่ดีที่สุด
http://nohatcoder.dk/2019-05-19-1.html ให้การจำแนกระดับแฮชใหม่ที่มีประโยชน์ 1-5
http://www.strchr.com/hash_functions แสดงรายการการวัดประสิทธิภาพและคุณภาพของฟังก์ชันแฮชที่ง่ายและรวดเร็วที่สุด
http://bench.cr.yp.to/primitives-hash.html แสดงรายการเกณฑ์มาตรฐานของแฮชที่ปลอดภัยที่ทดสอบในปัจจุบันทั้งหมด
http://valerieaurora.org/hash.html อายุการใช้งานของฟังก์ชันแฮชที่เข้ารหัส
การโจมตีตารางแฮชที่อธิบายไว้ใน SipHash ต่อ City, Murmur หรือ Perl JenkinsOAAT หรือที่ Hash Function Lounge จะไม่ถูกรวมไว้ที่นี่ เราแสดงรายการการโจมตีที่ทราบแล้วบางส่วนที่ GH #186
การหลีกเลี่ยงการโจมตีดังกล่าวไม่สามารถเป็นปัญหาของฟังก์ชันแฮชได้ แต่เป็นเพียงรูปแบบการแก้ปัญหาการชนกันของตารางแฮชเท่านั้น คุณสามารถโจมตีทุกฟังก์ชันแฮชได้ แม้แต่ฟังก์ชันที่ดีที่สุดและปลอดภัยที่สุดหากคุณตรวจพบ Seed เช่น จากคุณลักษณะภาษา (ผิด) การโจมตีช่องทางด้านข้าง การกำหนดเวลาการชน และลำดับการจัดเรียงที่เป็นอิสระ ดังนั้นคุณจึงต้องป้องกันการชนกันของคุณ รูปแบบการจัดการจากกรณีที่แย่ที่สุด O(n) เช่น แยกการผูกมัดกับรายการที่เชื่อมโยง การผูกมัดรายการที่เชื่อมโยงช่วยให้มีปัจจัยในการโหลดสูง แต่แคชไม่เป็นมิตรมาก รูปแบบรายการลิงก์ที่แนะนำเพียงอย่างเดียวคือการฝังคีย์หรือแฮชลงในอาร์เรย์ ทุกวันนี้ทุกคนใช้ที่อยู่แบบเปิดอย่างรวดเร็ว แม้ว่าปัจจัยในการโหลดจะต้องอยู่ที่ ~50% เว้นแต่คุณจะใช้ Cuckoo Hashing
นั่นคือการใช้ SipHash สำหรับตารางแฮชใน Python 3.4, Ruby, Rust, Systemd, OpenDNS, Haskell และ OpenBSD ถือเป็นระบบรักษาความปลอดภัยล้วนๆ SipHash ไม่ปลอดภัยเพียงพอสำหรับจุดประสงค์ด้านความปลอดภัยและไม่เร็วเพียงพอสำหรับการใช้งานทั่วไป การสร้างการชนแบบเดรัจฉาน ~ 32,000 ครั้งต้องใช้เวลา 2-4m สำหรับแฮชเหล่านี้ทั้งหมด siphash เป็นความต้องการที่ช้าที่สุดสูงสุด 4m โดยทั่วไปแล้วจะสูงสุด 2m30s โดย <10s สำหรับการโจมตีการชนกันของ 16k ที่ใช้งานได้จริงพร้อมฟังก์ชันแฮชทั้งหมด การใช้ Murmur มักจะช้ากว่า Mult ทั่วไป แม้ในกรณีที่แย่ที่สุดก็ตาม ความปลอดภัยที่พิสูจน์ได้เป็นเพียงการแฮชที่สม่ำเสมอ เช่น Mult หรือ Tabulation อิสระ 2-5 รายการ หรือใช้รูปแบบการชนกันแบบลอการิทึมที่รับประกัน (ต้นไม้) หรือรูปแบบการชนกันเชิงเส้น เช่น swisstable/folly-F14, Robin Hood หรือ Cuckoo hashing พร้อมการนับการชนกัน
หมายเหตุอีกประการหนึ่งเกี่ยวกับความปลอดภัย: ทุกวันนี้แม้แต่ SHA1 ก็สามารถแก้ไขได้ในตัวแก้ปัญหาเช่น Z3 (หรือตัวที่เร็วกว่า) สำหรับการโจมตีการชนกันของตารางแฮชที่ใช้งานได้จริง (เช่น 14-20 บิต) ฟังก์ชันแฮชทั้งหมดที่มีการทดสอบน้อยกว่า 160 บิตที่นี่ไม่ถือว่า "ปลอดภัย" เลย
การโจมตีช่องโหว่ '�' ด้วยไบนารีคีย์ได้รับการทดสอบในการทดสอบ Sanity Zero ครั้งที่ 2
แฮช crypto ของเราได้รับการเสริมความแข็งแกร่งด้วยเมล็ด size_t ที่เพิ่มเข้ามา ผสมเข้ากับสถานะเริ่มต้น และเวอร์ชันที่ต้องใช้การเติมศูนย์จะถูกทำให้แข็งขึ้นโดยการเพิ่ม len ด้วย เพื่อป้องกันการชนกับ AppendedZeroes สำหรับการเติม การใช้งาน libtomcrypt มีไว้เพื่อสิ่งนั้นแล้ว แต่อย่างอื่นอาจไม่เป็นเช่นนั้น หากไม่มีฟังก์ชันแฮช crypto ดังกล่าวจะไม่เหมาะกับงานปกติ เนื่องจากการสร้างการชนกันโดยการเติมหรือเมล็ดที่ไม่ดีนั้นไม่ใช่เรื่องเล็กน้อย
ชุดทดสอบฟังก์ชันแฮชอย่างเป็นทางการของ NIST ไม่ได้ทำการทดสอบทางสถิติที่ครอบคลุมเช่นนี้ เพื่อค้นหาช่วงที่อ่อนแอในบิต นอกจากนี้ crypto จะไม่เปลี่ยนสถานะเริ่มต้น ซึ่งเราทำที่นี่เพื่อสุ่มเมล็ด 32 บิตของเรา Crypto ส่วนใหญ่ให้ความสำคัญกับคีย์ที่ไม่สามารถย้อนกลับได้ -> ฟังก์ชันแฮชโดยไม่ต้องเปลี่ยนสถานะคงที่เริ่มต้นและการกำหนดเวลา/การโจมตีช่องทางด้านข้าง
"โปรแกรมตรวจสอบอัลกอริทึมการเข้ารหัสลับ" (CAVP) ของ NIST เกี่ยวข้องกับการทดสอบการใช้งานอัลกอริทึมการเข้ารหัสลับที่ได้รับการอนุมัติจาก FIPS และที่ NIST แนะนำ ในระหว่างการแข่งขัน NIST SHA-3 วิธีการทดสอบถูกยืมมาจาก "CAVP" เนื่องจาก KAT และ MCT ของชุดทดสอบการแข่งขัน SHA-3 อิงตามการทดสอบ CAVP สำหรับ SHA-2 นอกจากนี้ “การทดสอบข้อความที่ยาวมาก” ที่ไม่มีอยู่ใน CAVP สำหรับ SHA-2 กำหนดให้ผู้ส่งต้องสร้างค่าแฮชที่สอดคล้องกับข้อความที่มีความยาว 1 GiB “NIST - โปรแกรมตรวจสอบความถูกต้องของอัลกอริทึมการเข้ารหัส (CAVP)” มิถุนายน 2017 พร้อมใช้งาน: http://csrc.nist.gov/groups/STM/cavp (ไม่มีซอร์สโค้ดสำหรับการทดสอบ มีเพียงคำอธิบายระดับสูง)
ชุดทดสอบอิสระจากบุคคลที่สามอีกสองชุดพบจุดบกพร่องและจุดอ่อนจำนวนมากในผู้สมัคร SHA3 "การค้นหาจุดบกพร่องในการใช้งานฟังก์ชันแฮชที่เข้ารหัส", Nicky Mouha, Mohammad S Raunak, D. Richard Kuhn และ Raghu Kacker, 2017 https://eprint.iacr.org/2017/891.pdf
บางทีนักวิจัยอิสระควรมารวมตัวกันเพื่อทำ SHA-4 สาธารณะที่ดีขึ้น โดยอิงตามวิธีการทดสอบที่ดีขึ้นและมากขึ้น โค้ดโอเพ่นซอร์สสำหรับการทดสอบ และใช้แนวทางปฏิบัติมาตรฐานของอุตสาหกรรม เช่น valgrind, address-sanitizer และ ubsan เพื่อตรวจจับจุดบกพร่องที่ชัดเจน .
เมล็ดที่ไม่ดี
โดยทั่วไปฟังก์ชันแฮชจะเริ่มต้นด้วยการสุ่มเมล็ด แต่ค่าเริ่มต้นบางค่าอาจนำไปสู่ฟังก์ชันแฮชที่ไม่ถูกต้อง โดยไม่คำนึงถึงคีย์ ในกรณีปกติที่มีการสุ่มเมล็ด ความน่าจะเป็นของเมล็ดที่ไม่ดีนั้นต่ำมาก เช่น 2^32 หรือ 2^64 การใช้งานจริงจำเป็นต้องทราบว่ามีเมล็ดที่ไม่ดีอยู่หรือไม่ และเลือกเมล็ดอื่น ดูเช่น mirhash_seed_init()
และ mirhash_bad_seeds()
ใน Hashes.h
โปรดทราบว่าเมล็ดที่ไม่ดีไม่ได้เป็นปัญหาจริงๆ เมื่อคุณข้ามเมล็ดนี้ระหว่างการเริ่มต้น ยังคงเป็นฟังก์ชันแฮชที่ดีหรือแนะนำได้ แต่ค่าเมล็ดที่ไม่ดีที่เป็น 0
ซึ่งนำไปสู่การชนกันนั้นถือเป็นจุดบกพร่อง ซึ่งเป็นฟังก์ชันแฮชที่ไม่ดี
เราทดสอบความลับภายในว่าจะถูกคูณด้วย 0 หรือไม่ ซึ่งเรียกอีกอย่างว่า "การคูณแบบซ่อนเร้น" main.cpp
แสดงรายการความลับสำหรับแต่ละฟังก์ชันแฮชที่เราทดสอบ ฟังก์ชัน <hash>_bad_seeds()
แสดงรายการเมล็ดพันธุ์ที่ไม่ดีที่ได้รับการยืนยัน
จำเป็นต้องได้รับการดูแลเป็นพิเศษสำหรับซีอาร์ซี, สายพันธุ์ FNV1 ส่วนใหญ่, เฟลทเชอร์, เจนกินส์ และด้วยแฮช GOOD ตัวแปร MUM ส่วนใหญ่ เช่น mirhash, MUM, wyhash
โดยอิสระจากสิ่งนี้ เมื่อผู้โจมตีรู้ต้นกำเนิด ก็จะนำไปสู่การโจมตี DDOS แม้จะมีแฮช crypto ในแฮชเทเบิลของ power2
ปัญหาพฤติกรรมที่ไม่ได้กำหนด ( UB ) โดยทั่วไป:
ไม่ตรงแนว
แฮชแบบใช้คำจำนวนมาก (ตรงกันข้ามกับการประมวลผลแบบไบต์ที่ปลอดภัย) จะไม่ตรวจสอบบัฟเฟอร์อินพุตสำหรับการจัดแนวคำที่เหมาะสม ซึ่งจะล้มเหลวด้วย ubsan หรือ Sparc คำที่เป็น int32_t
หรือ int64_t
หรือมากกว่านั้น สำหรับฮาร์ดแวร์ RISC เก่าบางรุ่น นี่จะเป็นข้อผิดพลาดของ BUS คุณยังสามารถปล่อยให้ Intel HW สร้างข้อผิดพลาดของบัสดังกล่าวได้ด้วยการตั้งค่าแฟล็ก CPU บางตัว แต่โดยทั่วไปแล้วการใช้การเข้าถึงที่ไม่ตรงแนวก็เป็นเรื่องปกติ
เหล่านี้คือ: mx3, Spooky, mirhash ( แต่ไม่เข้มงวด ), MUM, fasthash, Murmur3*, Murmur2*, metrohash* (ทั้งหมดยกเว้น cmetro*), Crap8, beamsplitter, lookup3, fletcher4, fletcher2, sanmayce FNV1a_ สายพันธุ์ทั้งหมด (FNV1a_YT, FNV1A_Pippip_Yurii, FNV1A_Totenschiff, ...), ฟีโบนัชชี
การบรรเทาปัญหาตามปกติคือการตรวจสอบการจัดตำแหน่งบัฟเฟอร์ในตัวเรียก จัดให้มีลูปการประมวลผลล่วงหน้าสำหรับคำนำหน้าที่ไม่ตรงแนว หรือคัดลอกบัฟเฟอร์ทั้งหมดลงในพื้นที่ที่จัดแนวใหม่ ใส่โค้ดพิเศษนั้นไว้ข้างใน #ifdef HAVE_ALIGNED_ACCESS_REQUIRED
oob - อยู่นอกขอบเขต
ฟังก์ชันแฮชบางตัวถือว่าบัฟเฟอร์อินพุตแบบบุนวมซึ่งสามารถเข้าถึงได้ผ่านความยาวจนถึงขนาดคำ ซึ่งช่วยให้การประมวลผลลูปเร็วขึ้น เนื่องจากไม่จำเป็นต้องใช้ลูปที่ 2 หรือตารางสวิตช์สำหรับส่วนที่เหลือ แต่ต้องใช้สภาพแวดล้อมการโทรแบบร่วมมือกันและถือเป็นการโกง
ล้นจำนวนเต็มลงนาม
ข้อผิดพลาดประเภททั่วไปคือแฮชนี้จำเป็นต้องใช้ประเภทจำนวนเต็มที่ไม่ได้ลงนามเป็นการภายใน เพื่อหลีกเลี่ยงพฤติกรรมที่ไม่ได้กำหนดและไม่สอดคล้องกัน เช่น SuperFastHash: จำนวนเต็มล้นที่ลงนาม: -2147483641 + -113 ไม่สามารถแสดงเป็นประเภท 'int'
เลื่อนเลขชี้กำลังล้น
ด้วย: FNV1A_Pippip_Yurii, FNV1A_Totenschiff, pair_multiply_shift, sumhash32 shift เลขชี้กำลัง 64 ใหญ่เกินไปสำหรับประเภท 64 บิต 'long unsigned int'