A | B | D | F | G | H | I | J | K | L | M | N | O | P | Q | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Hash Function | Bits | Time | Recommend | Notes | ||||||||||
2 | Hashing#adler32 | 32 | 1.00 | No | Checksumming only (trades reliability for speed) | ||||||||||
3 | Hashing#crc32 | 32 | 1.52 | No | |||||||||||
4 | Hashing#goodFastHash(32) | 32 | 2.73 | Yes | Not stable between VM runs | ||||||||||
5 | Hashing#murmur3_32 | 32 | 2.75 | Yes | |||||||||||
6 | Hashing#goodFastHash(64) | 64 | 5.25 | Yes | Not stable between VM runs | ||||||||||
7 | Hashing#murmur3_128 | 128 | 5.26 | Yes | |||||||||||
8 | Hashing#goodFastHash(128) | 128 | 5.41 | Yes | Not stable between VM runs | ||||||||||
9 | Hashing#md5 | 128 | 6.03 | No | Not cryptographically secure or collision-resistant | ||||||||||
10 | Hashing#sha1 | 160 | 9.78 | No | Not cryptographically secure | ||||||||||
11 | Hashing#goodFastHash(256) | 256 | 10.41 | Yes | Not stable between VM runs | ||||||||||
12 | Hashing#sha256 | 256 | 17.58 | No | Probably cryptographically secure | ||||||||||
13 | Hashing#sha512 | 512 | 43.78 | Yes | |||||||||||
14 | Hashing#goodFastHash(int bits) | N | n/a | Yes | Not stable; user configured N-bit HashCodes | ||||||||||
15 | |||||||||||||||
16 | |||||||||||||||
17 | Benchmark: https://github.com/google/guava/blob/master/guava-tests/benchmark/com/google/common/hash/HashFunctionBenchmark.java | ||||||||||||||
18 | Time is expressed relative to the adler32 runtime. | ||||||||||||||
19 | |||||||||||||||
20 | |||||||||||||||
21 | |||||||||||||||
22 | |||||||||||||||
23 | |||||||||||||||
24 | |||||||||||||||
25 | |||||||||||||||
26 | |||||||||||||||
27 | |||||||||||||||
28 | |||||||||||||||
29 | |||||||||||||||
30 | |||||||||||||||
31 | |||||||||||||||
32 | |||||||||||||||
33 | |||||||||||||||
34 | |||||||||||||||
35 | |||||||||||||||
36 | |||||||||||||||
37 | |||||||||||||||
38 | |||||||||||||||
39 | |||||||||||||||
40 | |||||||||||||||
41 | |||||||||||||||
42 | |||||||||||||||
43 | |||||||||||||||
44 | |||||||||||||||
45 | |||||||||||||||
46 | |||||||||||||||
47 | |||||||||||||||
48 | |||||||||||||||
49 | |||||||||||||||
50 | |||||||||||||||
51 | |||||||||||||||
52 | |||||||||||||||
53 | |||||||||||||||
54 | |||||||||||||||
55 | |||||||||||||||
56 | |||||||||||||||
57 | |||||||||||||||
58 | |||||||||||||||
59 | |||||||||||||||
60 | |||||||||||||||
61 | |||||||||||||||
62 | |||||||||||||||
63 | |||||||||||||||
64 | |||||||||||||||
65 | |||||||||||||||
66 | |||||||||||||||
67 | |||||||||||||||
68 | |||||||||||||||
69 | |||||||||||||||
70 | |||||||||||||||
71 | |||||||||||||||
72 | |||||||||||||||
73 | |||||||||||||||
74 | |||||||||||||||
75 | |||||||||||||||
76 | |||||||||||||||
77 | |||||||||||||||
78 | |||||||||||||||
79 | |||||||||||||||
80 | |||||||||||||||
81 | |||||||||||||||
82 | |||||||||||||||
83 | |||||||||||||||
84 | |||||||||||||||
85 | |||||||||||||||
86 | |||||||||||||||
87 | |||||||||||||||
88 | |||||||||||||||
89 | |||||||||||||||
90 | |||||||||||||||
91 | |||||||||||||||
92 | |||||||||||||||
93 | |||||||||||||||
94 | |||||||||||||||
95 | |||||||||||||||
96 | |||||||||||||||
97 | |||||||||||||||
98 | |||||||||||||||
99 | |||||||||||||||
100 |