Libraries:
- Hashlib : https://pub.dev/packages/hashlib
- Crypto : https://pub.dev/packages/crypto
- PointyCastle : https://pub.dev/packages/pointycastle
- Hash : https://pub.dev/packages/hash
With 5MB message (10 iterations):
Algorithms | hashlib |
PointyCastle |
crypto |
hash |
---|---|---|---|---|
MD4 | 1.64 Gbps | 352 Mbps 4.66x slow |
||
MD5 | 1.45 Gbps | 347 Mbps 4.18x slow |
1.01 Gbps 1.44x slow |
651 Mbps 2.23x slow |
HMAC(MD5) | 1.33 Gbps | 991 Mbps 1.34x slow |
653 Mbps 2.04x slow |
|
SHA-1 | 1.27 Gbps | 248 Mbps 5.13x slow |
794 Mbps 1.61x slow |
388 Mbps 3.28x slow |
HMAC(SHA-1) | 1.28 Gbps | 793 Mbps 1.61x slow |
||
SHA-224 | 856 Mbps | 152 Mbps 5.65x slow |
685 Mbps 1.25x slow |
198 Mbps 4.32x slow |
SHA-256 | 859 Mbps | 151 Mbps 5.67x slow |
686 Mbps 1.25x slow |
198 Mbps 4.35x slow |
HMAC(SHA-256) | 858 Mbps | 688 Mbps 1.25x slow |
||
SHA-384 | 1.36 Gbps | 17.35 Mbps 78.24x slow |
466 Mbps 2.91x slow |
162 Mbps 8.37x slow |
SHA-512 | 1.36 Gbps | 17.59 Mbps 77.15x slow |
470 Mbps 2.89x slow |
160 Mbps 8.46x slow |
SHA3-224 | 857 Mbps | 14.97 Mbps 57.25x slow |
||
SHA3-256 | 857 Mbps | 14.17 Mbps 60.48x slow |
||
SHA3-384 | 1.36 Gbps | 10.85 Mbps 125.22x slow |
||
SHA3-512 | 1.37 Gbps | 7.49 Mbps 182.3x slow |
||
RIPEMD-128 | 1.79 Gbps | 247 Mbps 7.24x slow |
||
RIPEMD-160 | 698 Mbps | 174 Mbps 4x slow |
290 Mbps 2.41x slow |
|
RIPEMD-256 | 2 Gbps | 218 Mbps 9.16x slow |
||
RIPEMD-320 | 684 Mbps | 161 Mbps 4.26x slow |
||
BLAKE-2s | 1.49 Gbps | |||
BLAKE-2b | 1.53 Gbps | 71.06 Mbps 21.6x slow |
||
Poly1305 | 3.79 Gbps | 362 Mbps 10.48x slow |
||
XXH32 | 4.5 Gbps | |||
XXH64 | 2.42 Gbps | |||
XXH3 | 976 Mbps | |||
XXH128 | 1.03 Gbps | |||
SM3 | 751 Mbps | 135 Mbps 5.57x slow |
With 1KB message (5000 iterations):
Algorithms | hashlib |
PointyCastle |
crypto |
hash |
---|---|---|---|---|
MD4 | 1.54 Gbps | 576 Mbps 2.67x slow |
||
MD5 | 1.37 Gbps | 514 Mbps 2.66x slow |
916 Mbps 1.49x slow |
643 Mbps 2.12x slow |
HMAC(MD5) | 1 Gbps | 735 Mbps 1.36x slow |
482 Mbps 2.08x slow |
|
SHA-1 | 1.16 Gbps | 348 Mbps 3.33x slow |
714 Mbps 1.62x slow |
371 Mbps 3.12x slow |
HMAC(SHA-1) | 784 Mbps | 505 Mbps 1.55x slow |
||
SHA-224 | 780 Mbps | 177 Mbps 4.41x slow |
616 Mbps 1.27x slow |
187 Mbps 4.18x slow |
SHA-256 | 784 Mbps | 175 Mbps 4.48x slow |
615 Mbps 1.27x slow |
187 Mbps 4.19x slow |
HMAC(SHA-256) | 549 Mbps | 433 Mbps 1.27x slow |
||
SHA-384 | 1.13 Gbps | 26.94 Mbps 42.01x slow |
402 Mbps 2.82x slow |
169 Mbps 6.71x slow |
SHA-512 | 1.13 Gbps | 27.88 Mbps 40.48x slow |
402 Mbps 2.81x slow |
170 Mbps 6.64x slow |
SHA3-224 | 782 Mbps | 20.34 Mbps 38.46x slow |
||
SHA3-256 | 783 Mbps | 20.55 Mbps 38.11x slow |
||
SHA3-384 | 1.13 Gbps | 16.25 Mbps 69.21x slow |
||
SHA3-512 | 1.13 Gbps | 10.89 Mbps 103.51x slow |
||
RIPEMD-128 | 1.62 Gbps | 334 Mbps 4.87x slow |
||
RIPEMD-160 | 642 Mbps | 207 Mbps 3.1x slow |
280 Mbps 2.29x slow |
|
RIPEMD-256 | 1.81 Gbps | 339 Mbps 5.34x slow |
||
RIPEMD-320 | 636 Mbps | 198 Mbps 3.22x slow |
||
BLAKE-2s | 1.43 Gbps | |||
BLAKE-2b | 1.47 Gbps | 95.76 Mbps 15.38x slow |
||
Poly1305 | 3.33 Gbps | 768 Mbps 4.33x slow |
||
XXH32 | 4.12 Gbps | |||
XXH64 | 2.27 Gbps | |||
XXH3 | 784 Mbps | |||
XXH128 | 825 Mbps | |||
SM3 | 698 Mbps | 163 Mbps 4.28x slow |
With 10B message (100000 iterations):
Algorithms | hashlib |
PointyCastle |
crypto |
hash |
---|---|---|---|---|
MD4 | 210 Mbps | 101 Mbps 2.09x slow |
||
MD5 | 177 Mbps | 89.19 Mbps 1.98x slow |
92.89 Mbps 1.9x slow |
52.25 Mbps 3.38x slow |
HMAC(MD5) | 36.18 Mbps | 31.69 Mbps 1.14x slow |
14.23 Mbps 2.54x slow |
|
SHA-1 | 120 Mbps | 49.47 Mbps 2.42x slow |
69.51 Mbps 1.72x slow |
34.29 Mbps 3.49x slow |
HMAC(SHA-1) | 19.64 Mbps | 14.71 Mbps 1.34x slow |
||
SHA-224 | 88.2 Mbps | 26.95 Mbps 3.27x slow |
58.57 Mbps 1.51x slow |
21.69 Mbps 4.07x slow |
SHA-256 | 88.39 Mbps | 27.12 Mbps 3.26x slow |
60.75 Mbps 1.45x slow |
22.48 Mbps 3.93x slow |
HMAC(SHA-256) | 14.35 Mbps | 12.45 Mbps 1.15x slow |
||
SHA-384 | 65.18 Mbps | 2.33 Mbps 27.95x slow |
26.99 Mbps 2.42x slow |
11.16 Mbps 5.84x slow |
SHA-512 | 64.21 Mbps | 2.35 Mbps 27.3x slow |
26.59 Mbps 2.41x slow |
11.39 Mbps 5.64x slow |
SHA3-224 | 88.02 Mbps | 1.57 Mbps 55.89x slow |
||
SHA3-256 | 89.16 Mbps | 1.56 Mbps 57.23x slow |
||
SHA3-384 | 64.5 Mbps | 1.57 Mbps 41.07x slow |
||
SHA3-512 | 63.11 Mbps | 1.57 Mbps 40.2x slow |
||
RIPEMD-128 | 177 Mbps | 58.35 Mbps 3.03x slow |
||
RIPEMD-160 | 86.81 Mbps | 33.18 Mbps 2.62x slow |
32.16 Mbps 2.7x slow |
|
RIPEMD-256 | 180 Mbps | 53.17 Mbps 3.39x slow |
||
RIPEMD-320 | 85.18 Mbps | 30.48 Mbps 2.79x slow |
||
BLAKE-2s | 152 Mbps | |||
BLAKE-2b | 120 Mbps | 6.89 Mbps 17.44x slow |
||
Poly1305 | 269 Mbps | 167 Mbps 1.61x slow |
||
XXH32 | 413 Mbps | |||
XXH64 | 332 Mbps | |||
XXH3 | 32.94 Mbps | |||
XXH128 | 33.16 Mbps | |||
SM3 | 93.33 Mbps | 24.81 Mbps 3.76x slow |
Key derivator algorithm benchmarks on different security parameters:
Algorithms | little | moderate | good | strong |
---|---|---|---|---|
scrypt | 1.092 ms | 11.899 ms | 69.138 ms | 2100.983 ms |
bcrypt | 1.803 ms | 14.474 ms | 226.341 ms | 1811.425 ms |
pbkdf2 | 0.668 ms | 16.363 ms | 267.526 ms | 3211.098 ms |
argon2i | 2.359 ms | 17.448 ms | 205.518 ms | 2375.301 ms |
argon2d | 2.272 ms | 16.064 ms | 201.827 ms | 2374.41 ms |
argon2id | 2.306 ms | 16.38 ms | 199.66 ms | 2376.102 ms |
All benchmarks are done on AMD Ryzen 7 5800X processor and 3200MHz RAM using compiled exe
Dart SDK version: 3.7.0 (stable) (Wed Feb 5 04:53:58 2025 -0800) on "windows_x64"