@@ -11,69 +11,69 @@ With string of length 10 (100000 iterations):
11
11
12
12
| Algorithms | ` hashlib ` | ` crypto ` | ` hash ` | ` PointyCastle ` |
13
13
| ------------- | ------------- | ---------------------------- | --------------------------- | ------------------------------ |
14
- | XXH64 | ** 68.20MB /s** | ➖ | ➖ | ➖ |
15
- | XXH3 | ** 8.61MB /s** | ➖ | ➖ | ➖ |
16
- | MD5 | ** 22.80MB/s** | 10.07MB /s <br > ` 127 % slower` | 7.46MB /s <br > ` 205% slower ` | 10.99MB /s <br > ` 107 % slower` |
17
- | SHA-1 | ** 16.18MB /s** | 8.51MB /s <br > ` 90 % slower` | 4.69MB /s <br > ` 245 % slower` | 7.27MB /s <br > ` 122 % slower` |
18
- | SHA-224 | ** 12.05MB /s** | 7.41MB /s <br > ` 63 % slower` | 2.59MB /s <br > ` 365 % slower` | 3.05MB /s <br > ` 295 % slower` |
19
- | SHA-256 | ** 12.27MB /s** | 7.47MB /s <br > ` 64 % slower` | 2.63MB /s <br > ` 366 % slower` | 3.06MB /s <br > ` 301 % slower` |
20
- | SHA-384 | ** 9.31MB /s** | 3.00MB /s <br > ` 210 % slower` | 1.37MB /s <br > ` 581 % slower` | 386.43KB /s <br > ` 2309 % slower` |
21
- | SHA-512 | ** 9.33MB /s** | 2.97MB /s <br > ` 214% slower ` | 1.38MB /s <br > ` 578 % slower` | 383.06KB /s <br > ` 2336 % slower` |
22
- | SHA-512/224 | ** 9.34MB /s** | 3.01MB /s <br > ` 211 % slower` | ➖ | 194.97KB /s <br > ` 4692 % slower` |
23
- | SHA-512/256 | ** 9.27MB /s** | 3.03MB /s <br > ` 206 % slower` | ➖ | 194.85KB /s <br > ` 4656 % slower` |
24
- | SHA3-256 | ** 12.17MB /s** | ➖ | ➖ | 224.11KB /s <br > ` 5331 % slower` |
25
- | SHA3-512 | ** 9.25MB /s** | ➖ | ➖ | 221.98KB /s <br > ` 4068 % slower` |
26
- | BLAKE-2s | ** 14.86MB /s** | ➖ | ➖ | ➖ |
27
- | BLAKE-2b | ** 12.60MB /s** | ➖ | ➖ | 845.22KB /s <br > ` 1391 % slower` |
28
- | HMAC(MD5) | ** 4.78MB /s** | 3.74MB /s <br > ` 28 % slower` | 1.96MB /s <br > ` 145 % slower` | ➖ |
29
- | HMAC(SHA-256) | ** 1.87MB /s** | 1.61MB /s <br > ` 16 % slower` | ➖ | ➖ |
14
+ | XXH64 | ** 67.24MB /s** | ➖ | ➖ | ➖ |
15
+ | XXH3 | ** 8.56MB /s** | ➖ | ➖ | ➖ |
16
+ | MD5 | ** 22.80MB/s** | 10.23MB /s <br > ` 123 % slower` | 7.47MB /s <br > ` 205% slower ` | 11.39MB /s <br > ` 100 % slower` |
17
+ | SHA-1 | ** 17.38MB /s** | 8.74MB /s <br > ` 99 % slower` | 4.76MB /s <br > ` 265 % slower` | 7.37MB /s <br > ` 136 % slower` |
18
+ | SHA-224 | ** 12.30MB /s** | 7.24MB /s <br > ` 70 % slower` | 2.49MB /s <br > ` 395 % slower` | 3.16MB /s <br > ` 289 % slower` |
19
+ | SHA-256 | ** 12.28MB /s** | 7.29MB /s <br > ` 68 % slower` | 2.62MB /s <br > ` 368 % slower` | 3.18MB /s <br > ` 286 % slower` |
20
+ | SHA-384 | ** 9.44MB /s** | 2.98MB /s <br > ` 216 % slower` | 1.28MB /s <br > ` 639 % slower` | 397.37KB /s <br > ` 2276 % slower` |
21
+ | SHA-512 | ** 9.36MB /s** | 2.98MB /s <br > ` 214% slower ` | 1.34MB /s <br > ` 597 % slower` | 396.35KB /s <br > ` 2262 % slower` |
22
+ | SHA-512/224 | ** 9.57MB /s** | 3.02MB /s <br > ` 217 % slower` | ➖ | 201.40KB /s <br > ` 4652 % slower` |
23
+ | SHA-512/256 | ** 9.54MB /s** | 3.00MB /s <br > ` 218 % slower` | ➖ | 201.98KB /s <br > ` 4623 % slower` |
24
+ | SHA3-256 | ** 12.33MB /s** | ➖ | ➖ | 219.98KB /s <br > ` 5505 % slower` |
25
+ | SHA3-512 | ** 9.36MB /s** | ➖ | ➖ | 219.72KB /s <br > ` 4162 % slower` |
26
+ | BLAKE-2s | ** 14.83MB /s** | ➖ | ➖ | ➖ |
27
+ | BLAKE-2b | ** 12.63MB /s** | ➖ | ➖ | 813.14KB /s <br > ` 1453 % slower` |
28
+ | HMAC(MD5) | ** 4.67MB /s** | 3.75MB /s <br > ` 24 % slower` | 1.95MB /s <br > ` 140 % slower` | ➖ |
29
+ | HMAC(SHA-256) | ** 1.89MB /s** | 1.57MB /s <br > ` 20 % slower` | ➖ | ➖ |
30
30
31
31
With string of length 1000 (5000 iterations):
32
32
33
33
| Algorithms | ` hashlib ` | ` crypto ` | ` hash ` | ` PointyCastle ` |
34
34
| ------------- | -------------- | ---------------------------- | ---------------------------- | ----------------------------- |
35
- | XXH64 | ** 441.19MB /s** | ➖ | ➖ | ➖ |
36
- | XXH3 | ** 106.73MB /s** | ➖ | ➖ | ➖ |
37
- | MD5 | ** 152.95MB /s** | 114.36MB /s <br > ` 34 % slower` | 90.60MB /s <br > ` 69 % slower` | 78.31MB /s <br > ` 95 % slower` |
38
- | SHA-1 | ** 140.83MB /s** | 92.62MB /s <br > ` 52 % slower` | 44.99MB /s <br > ` 213 % slower` | 53.71MB /s <br > ` 162 % slower` |
39
- | SHA-224 | ** 94.27MB /s** | 78.74MB /s <br > ` 20 % slower` | 20.29MB /s <br > ` 365 % slower` | 20.86MB /s <br > ` 352 % slower` |
40
- | SHA-256 | ** 95.06MB /s** | 78.81MB /s <br > ` 21 % slower` | 20.39MB /s <br > ` 366 % slower` | 20.79MB /s <br > ` 357 % slower` |
41
- | SHA-384 | ** 143.83MB /s** | 47.49MB /s <br > ` 203 % slower` | 21.01MB /s <br > ` 584 % slower` | 4.99MB /s <br > ` 2781 % slower` |
42
- | SHA-512 | ** 145.61MB /s** | 47.38MB /s <br > ` 207 % slower` | 20.86MB /s <br > ` 598 % slower` | 4.97MB /s <br > ` 2831 % slower` |
43
- | SHA-512/224 | ** 146.08MB /s** | 47.21MB /s <br > ` 209 % slower` | ➖ | 4.43MB /s <br > ` 3195 % slower` |
44
- | SHA-512/256 | ** 148.26MB /s** | 47.00MB /s <br > ` 215 % slower` | ➖ | 4.44MB /s <br > ` 3243 % slower` |
45
- | SHA3-256 | ** 95.72MB /s** | ➖ | ➖ | 2.94MB /s <br > ` 3152 % slower` |
46
- | SHA3-512 | ** 143.76MB /s** | ➖ | ➖ | 1.69MB /s <br > ` 8430 % slower` |
47
- | BLAKE-2s | ** 135.26MB /s** | ➖ | ➖ | ➖ |
48
- | BLAKE-2b | ** 153.19MB /s** | ➖ | ➖ | 11.77MB /s <br > ` 1201 % slower` |
49
- | HMAC(MD5) | ** 122.17MB /s** | 93.32MB /s <br > ` 31 % slower` | 67.87MB /s <br > ` 80 % slower` | ➖ |
50
- | HMAC(SHA-256) | ** 66.17MB /s** | 55.79MB /s <br > ` 19 % slower` | ➖ | ➖ |
35
+ | XXH64 | ** 454.17MB /s** | ➖ | ➖ | ➖ |
36
+ | XXH3 | ** 105.77MB /s** | ➖ | ➖ | ➖ |
37
+ | MD5 | ** 155.56MB /s** | 116.70MB /s <br > ` 33 % slower` | 89.72MB /s <br > ` 73 % slower` | 79.40MB /s <br > ` 96 % slower` |
38
+ | SHA-1 | ** 146.49MB /s** | 94.75MB /s <br > ` 55 % slower` | 46.52MB /s <br > ` 215 % slower` | 54.18MB /s <br > ` 170 % slower` |
39
+ | SHA-224 | ** 97.16MB /s** | 78.68MB /s <br > ` 23 % slower` | 20.99MB /s <br > ` 363 % slower` | 20.98MB /s <br > ` 363 % slower` |
40
+ | SHA-256 | ** 97.22MB /s** | 78.19MB /s <br > ` 24 % slower` | 20.95MB /s <br > ` 364 % slower` | 20.97MB /s <br > ` 364 % slower` |
41
+ | SHA-384 | ** 143.92MB /s** | 46.98MB /s <br > ` 206 % slower` | 21.39MB /s <br > ` 573 % slower` | 5.21MB /s <br > ` 2665 % slower` |
42
+ | SHA-512 | ** 148.22MB /s** | 47.41MB /s <br > ` 213 % slower` | 21.50MB /s <br > ` 589 % slower` | 5.21MB /s <br > ` 2745 % slower` |
43
+ | SHA-512/224 | ** 145.98MB /s** | 47.04MB /s <br > ` 210 % slower` | ➖ | 4.61MB /s <br > ` 3068 % slower` |
44
+ | SHA-512/256 | ** 144.80MB /s** | 47.35MB /s <br > ` 206 % slower` | ➖ | 4.61MB /s <br > ` 3042 % slower` |
45
+ | SHA3-256 | ** 96.78MB /s** | ➖ | ➖ | 2.88MB /s <br > ` 3266 % slower` |
46
+ | SHA3-512 | ** 145.49MB /s** | ➖ | ➖ | 1.66MB /s <br > ` 8685 % slower` |
47
+ | BLAKE-2s | ** 133.86MB /s** | ➖ | ➖ | ➖ |
48
+ | BLAKE-2b | ** 153.35MB /s** | ➖ | ➖ | 11.53MB /s <br > ` 1231 % slower` |
49
+ | HMAC(MD5) | ** 122.39MB /s** | 94.73MB /s <br > ` 29 % slower` | 67.13MB /s <br > ` 82 % slower` | ➖ |
50
+ | HMAC(SHA-256) | ** 67.48MB /s** | 55.64MB /s <br > ` 21 % slower` | ➖ | ➖ |
51
51
52
52
With string of length 500000 (10 iterations):
53
53
54
54
| Algorithms | ` hashlib ` | ` crypto ` | ` hash ` | ` PointyCastle ` |
55
55
| ------------- | -------------- | ---------------------------- | ---------------------------- | ----------------------------- |
56
- | XXH64 | ** 478.46MB /s** | ➖ | ➖ | ➖ |
57
- | XXH3 | ** 118.07MB /s** | ➖ | ➖ | ➖ |
58
- | MD5 | ** 160.08MB /s** | 119.61MB /s <br > ` 34 % slower` | 69.30MB /s <br > ` 131 % slower` | 82.72MB /s <br > ` 94 % slower` |
59
- | SHA-1 | ** 152.65MB /s** | 95.88MB /s <br > ` 59 % slower` | 39.81MB /s <br > ` 283 % slower` | 56.64MB /s <br > ` 170 % slower` |
60
- | SHA-224 | ** 100.19MB /s** | 83.20MB /s <br > ` 20 % slower` | 19.47MB /s <br > ` 415 % slower` | 21.54MB /s <br > ` 365 % slower` |
61
- | SHA-256 | ** 100.34MB /s** | 84.02MB /s <br > ` 19 % slower` | 19.58MB /s <br > ` 412 % slower` | 21.53MB /s <br > ` 366 % slower` |
62
- | SHA-384 | ** 160.22MB /s** | 49.44MB /s <br > ` 224 % slower` | 17.75MB /s <br > ` 803 % slower` | 5.18MB /s <br > ` 2992 % slower` |
63
- | SHA-512 | ** 160.45MB /s** | 49.45MB /s <br > ` 224 % slower` | 17.63MB /s <br > ` 810 % slower` | 5.18MB /s <br > ` 2995 % slower` |
64
- | SHA-512/224 | ** 159.81MB /s** | 49.18MB /s <br > ` 225 % slower` | ➖ | 5.19MB /s <br > ` 2981 % slower` |
65
- | SHA-512/256 | ** 158.64MB /s** | 49.02MB /s <br > ` 224 % slower` | ➖ | 5.11MB /s <br > ` 3005 % slower` |
66
- | SHA3-256 | ** 100.69MB /s** | ➖ | ➖ | 3.20MB /s <br > ` 3043 % slower` |
67
- | SHA3-512 | ** 160.69MB /s** | ➖ | ➖ | 1.71MB /s <br > ` 9308 % slower` |
68
- | BLAKE-2s | ** 143.60MB /s** | ➖ | ➖ | ➖ |
69
- | BLAKE-2b | ** 164.93MB /s** | ➖ | ➖ | 12.42MB /s <br > ` 1228 % slower` |
70
- | HMAC(MD5) | ** 159.29MB /s** | 120.42MB /s <br > ` 32 % slower` | 68.40MB /s <br > ` 133% slower ` | ➖ |
71
- | HMAC(SHA-256) | ** 100.23MB /s** | 83.31MB /s <br > ` 20 % slower` | ➖ | ➖ |
56
+ | XXH64 | ** 484.62MB /s** | ➖ | ➖ | ➖ |
57
+ | XXH3 | ** 116.98MB /s** | ➖ | ➖ | ➖ |
58
+ | MD5 | ** 161.57MB /s** | 123.35MB /s <br > ` 31 % slower` | 69.18MB /s <br > ` 134 % slower` | 83.05MB /s <br > ` 95 % slower` |
59
+ | SHA-1 | ** 153.49MB /s** | 97.47MB /s <br > ` 57 % slower` | 40.97MB /s <br > ` 275 % slower` | 56.68MB /s <br > ` 171 % slower` |
60
+ | SHA-224 | ** 101.25MB /s** | 82.35MB /s <br > ` 23 % slower` | 20.11MB /s <br > ` 404 % slower` | 21.55MB /s <br > ` 370 % slower` |
61
+ | SHA-256 | ** 101.56MB /s** | 82.32MB /s <br > ` 23 % slower` | 20.02MB /s <br > ` 407 % slower` | 21.69MB /s <br > ` 368 % slower` |
62
+ | SHA-384 | ** 160.98MB /s** | 49.18MB /s <br > ` 227 % slower` | 17.69MB /s <br > ` 810 % slower` | 5.34MB /s <br > ` 2913 % slower` |
63
+ | SHA-512 | ** 162.20MB /s** | 49.22MB /s <br > ` 230 % slower` | 17.68MB /s <br > ` 817 % slower` | 5.34MB /s <br > ` 2938 % slower` |
64
+ | SHA-512/224 | ** 161.66MB /s** | 49.25MB /s <br > ` 228 % slower` | ➖ | 5.34MB /s <br > ` 2930 % slower` |
65
+ | SHA-512/256 | ** 161.52MB /s** | 49.16MB /s <br > ` 229 % slower` | ➖ | 5.35MB /s <br > ` 2921 % slower` |
66
+ | SHA3-256 | ** 101.83MB /s** | ➖ | ➖ | 3.15MB /s <br > ` 3129 % slower` |
67
+ | SHA3-512 | ** 160.89MB /s** | ➖ | ➖ | 1.67MB /s <br > ` 9543 % slower` |
68
+ | BLAKE-2s | ** 141.52MB /s** | ➖ | ➖ | ➖ |
69
+ | BLAKE-2b | ** 162.45MB /s** | ➖ | ➖ | 12.14MB /s <br > ` 1238 % slower` |
70
+ | HMAC(MD5) | ** 162.09MB /s** | 123.68MB /s <br > ` 31 % slower` | 69.42MB /s <br > ` 133% slower ` | ➖ |
71
+ | HMAC(SHA-256) | ** 101.54MB /s** | 82.08MB /s <br > ` 24 % slower` | ➖ | ➖ |
72
72
73
73
Argon2 benchmarks on different security parameters:
74
74
75
75
| Algorithms | test | little | moderate | good | strong |
76
76
| ---------- | -------- | -------- | --------- | ---------- | ----------- |
77
- | argon2i | 0.377 ms | 2.732 ms | 16.251 ms | 204.234 ms | 2443.906 ms |
78
- | argon2d | 0.295 ms | 2.714 ms | 24.165 ms | 208.607 ms | 2420.881 ms |
79
- | argon2id | 0.312 ms | 2.538 ms | 16.764 ms | 211.54 ms | 3959.699 ms |
77
+ | argon2i | 0.378 ms | 2.62 ms | 17.917 ms | 219.696 ms | 2504.115 ms |
78
+ | argon2d | 0.334 ms | 2.747 ms | 19.035 ms | 239.565 ms | 2508.532 ms |
79
+ | argon2id | 0.323 ms | 2.631 ms | 17.18 ms | 214.449 ms | 2538.26 ms |
0 commit comments