SkillAgentSearch skills...

Smhasher

Hash function quality and speed tests

Install / Use

/learn @rurban/Smhasher
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

SMhasher

Linux Build status Windows Build status FreeBSD Build status

| Hash function | MiB/sec |cycl./hash|cycl./map | size| Quality problems | |:----------------------------------------------|-------------:|---------:|-----------:|----:|--------------------------------| | donothing32 | 11536809.55 | 4.00 | - | 13 | bad seed 0, test NOP | | donothing64 | 12269832.97 | 4.00 | - | 13 | bad seed 0, test NOP | | donothing128 | 11961841.48 | 4.08 | - | 13 | bad seed 0, test NOP | | NOP_OAAT_read64 | 11652662.97 | 14.00 | - | 47 | test NOP | | BadHash | 794.68 | 72.80 | - | 48 | bad seed 0, test FAIL | | sumhash | 10184.67 | 29.40 | - | 417 | bad seed 0, test FAIL | | sumhash32 | 44755.87 | 23.46 | - | 697 | UB, test FAIL | | multiply_shift | 8286.63 | 25.39 | 209.06 (2) | 345 | bad seeds & 0xfffffff0, fails most tests | | pair_multiply_shift| 5728.05 | 39.67 | 218.48 (12)| 609 | fails most tests | | -------------------------- | | | | | | | crc32 | 369.88 | 142.33 | 396.81 (101)|363 | insecure, 8590x collisions, distrib, PerlinNoise | | md5_32 | 359.43 | 638.92 | 865.21 (6) | 598 | | | md5_64 | 360.20 | 640.38 | 869.55 (6) | 662 | | | md5-128 | 344.63 | 669.59 | 856.34 (5) | 557 | | | sha1_32 | 353.03 | 1385.80 |1759.94 (5) |5126 | Sanity, Cyclic low32, 36.6% distrib | | sha1_64 | 353.03 | 1385.80 |1759.94 (5) |5126 | Sanity, Cyclic low32, 36.6% distrib | | sha1-160 | 364.95 | 1470.55 |1794.16 (13)|5126 | Comb/Cyclic low32 | | sha2-224 | 147.13 | 1354.81 |1589.92 (12)| 695 | Comb low32 | | sha2-224_64 | 147.60 | 1360.10 |1620.93 (13)| 600 | Cyclic low32 | | sha2-256 | 147.80 | 1374.90 |1606.06 (16)| 663 | | | sha2-256_64 | 148.01 | 1376.34 |1624.71 (16)| 600 | | | sha1ni | 1632.88 | 170.77 | 379.84 (5) |1321 | insecure,sanity, Permutation, Zeroes, machine-specific | | sha1ni_32 | 1583.50 | 172.17 | 387.70 (4) |1273 | machine-specific | | sha2ni-256 | 1556.66 | 180.75 | 393.79 (5) |1495 | insecure,sanity, Permutation, Zeroes, machine-specific | | sha2ni-256_64 | 1508.82 | 184.89 | 393.07 (6) |1409 | Zeroes, machine-specific | | blake3_c | 1298.04 | 354.25 | 563.63 (4) |16462| no 32bit portability | | rmd128 | 294.42 | 712.67 | 930.65 (4) | 950 | | | rmd160 | 202.16 | 1045.79 |1287.74 (16)| 950 | Cyclic hi32 | | rmd256 | 366.21 | 615.39 | 830.04 (7) |1026 | | | edonr224 | 863.77 | 304.76 | 496.66 (3) | 834 | | | edonr256 | 870.97 | 296.40 | 517.82 (6) | 834 | | | blake2s-128 | 295.30 | 698.09 |1059.24 (51)| 329 | | | blake2s-160 | 215.01 | 1026.74 |1239.54 (11)| 329 | | | blake2s-224 | 207.06 | 1063.86 |1236.50 (20)| 329 | | | blake2s-256 | 215.28 | 1014.88 |1230.38 (28)| 329 | | | blake2s-256_64 | 211.52 | 1044.22 |1228.43 (8) | 323 | | | blake2b-160 | 356.08 | 1236.84 |1458.15 (12)| 505 | | | blake2b-224 | 356.59 | 1228.50 |1425.87 (16)| 505 | | | blake2b-256 | 355.97 | 1232.22 |1443.31 (19)| 505 | | | blake2b-256_64 | 356.97 | 1222.76 |1435.03 (9) | 501 | | | asconhashv12 | 144.98 | 885.02 |1324.23 (38)|4341 | | | asconhashv12_64 | 159.33 | 402.54 | 473.15 (4) |6490 | | | sha3-256 | 100.58 | 3877.18 |4159.79 (37)|1686 | PerlinNoise | | sha3-256_64 | 100.57 | 3909.00 |4174.63 (16)|1630 | PerlinNoise | | hasshe2 | 2879.93 | 62.47 | 272.34 (2) | 505 | Permutation,TwoBytes,Zeroes,Seed| | poly_1_mersenne | 1278.37 | 63.42 | 244.41 (1) | 479 | fails most tests | | poly_2_mersenne | 1391.90 | 69.97 | 255.44 (3) | 479 | | | poly_3_mersenne | 1320.15 | 80.81 | 263.12 (2) | 479 | | | poly_4_mersenne | 1393.93 | 89.07 | 262.97 (2) | 479 | | | tabulation32 | 5819.40 | 40.16 | 233.00 (3) | 848 | collisions | | tabulation | 7407.94 | 39.83 | 240.25 (4) | 554 | | | crc32_hw | 5537.79 | 40.80 | 225.65 (3) | 653 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (SSE4.2/NEON) | | crc32_hw1 | 7626.17 | 50.21 | 228.50 (2) | 696 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (x86 SSE4.2) | | crc64_hw | 5579.17 | 40.87 | 202.19 (1) | 652 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (SSE4.2/NEON) | | crc32_pclmul | 7963.20 | 106.02 | 567.70 (3) | 254 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (x86 SSE4.2+PCLMUL) | | crc64_jones1 | 1673.67 | 83.00 | 249.16 (2) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific | | crc64_jones2 | 2968.07 | 314.60 | 253.01 (3) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific | | crc64_jones3 | 3398.80 | 302.59 | 258.16 (8) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific | | crc64_jones | 3512.66 | 80.70 | 251.40 (2) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific | | o1hash | 11530366.92 | 18.40 | 206.94 (1) | 101 | insecure, no seed, zeros, fails all tests | | fibonacci | 15409.62 | 22.67 | 872.83 (3) |1692 | UB, zeros, fails all tests | | FNV1a | 754.70 | 75.28 | 226.30 (2) | 54 | bad seed, zeros, fails all tests | | FNV1A_Totenschiff| 6166.85 | 26.60 | 235.71 (2) | 270 | UB, zeros, fails all tests | | FNV1A_Pippip_Yurii| 24196.44 | 86.25 | 539.41 (3) | 603 | bad seeds, UB, sanity, x64 AESNI only | | FNV1a_YT | 13481.70 | 30.67 | 233.71 (7) | 336 | bad seed, UB, fails all tests | | FNV2 | 5630.87 | 32.09 | 207.08 (1) | 278 | fails all tests | | FNV64 | 747.70 | 74.18 | 189.18 (1) | 70 | fails all tests | | FNV128 | 408.59 | 130.82 | 299.47 (20)| 153 | fails all tests | | k-hash32 | 2227.90 | 53.85 | 255.78 (2) | 808 | insecure, zeros, UB, bad seeds, fails all tests | | k-hash64 | 2492.66 | 48.18 | 242.58 (2) | 609 | insecure, zeros, UB, bad seeds, fails all tests | | fletcher2 | 15410.12 | 20.72 | 345.55 (5) | 117 | bad seed 0, UB, fails all tests | | fletcher4 | 15603.68 | 21.24 | 320.09 (2) | 117 | bad seed 0, UB, fails all tests | | bernstein |

Related Skills

View on GitHub
GitHub Stars2.1k
CategoryDevelopment
Updated1d ago
Forks190

Languages

C++

Security Score

85/100

Audited on Mar 26, 2026

No findings