Commit 187c8e9
committed
add BLAKE3 hash
BLAKE3 is a very fast cryptograpically secure hash.
It is the latest iteration of the BLAKE hash, which was a SHA3 finalist (but lost to Keccak in the final round, for being too similar to SHA2).
Check this speed chart: https://raw.githubusercontent.com/BLAKE3-team/BLAKE3/master/media/speed.svg
and this bench.php run where BLAKE3 is much faster than every secure hash, and beats several non-cryptographic hashes:
$ sapi/cli/php ext/hash/bench.php
crc32b 0.001195
crc32c 0.001202
crc32 0.001202
xxh3 0.001234
xxh128 0.001289
xxh64 0.001475
xxh32 0.002235
murmur3f 0.002459
murmur3c 0.003681
murmur3a 0.004289
adler32 0.007718
blake3 0.007752
md4 0.013109
fnv132 0.015075
fnv164 0.015109
fnv1a64 0.015116
fnv1a32 0.015251
joaat 0.018858
md5 0.019797
sha1 0.020472
tiger160,3 0.021290
tiger192,3 0.021363
tiger128,3 0.021366
tiger128,4 0.027518
tiger160,4 0.027743
tiger192,4 0.027870
ripemd128 0.029190
ripemd256 0.029378
sha3-224 0.029787
sha3-256 0.031518
haval256,3 0.038328
haval224,3 0.038479
haval128,3 0.038483
sha3-384 0.038559
haval192,3 0.038564
haval160,3 0.039068
sha512/256 0.039302
sha512 0.039307
sha512/224 0.039472
sha384 0.039508
ripemd160 0.042287
ripemd320 0.043036
sha3-512 0.054044
haval192,4 0.055699
haval224,4 0.055902
haval160,4 0.055925
haval256,4 0.055948
haval128,4 0.056165
sha256 0.057846
sha224 0.058139
haval128,5 0.070442
haval224,5 0.070503
haval256,5 0.070569
haval192,5 0.070576
haval160,5 0.071109
whirlpool 0.086256
gost 0.200251
gost-crypto 0.200709
snefru256 0.449650
snefru 0.451111
md2 1.2378801 parent ffc250d commit 187c8e9
File tree
38 files changed
+31181
-135
lines changed- build
- ext/hash
- blake3
- upstream_blake3/c
- tests
38 files changed
+31181
-135
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2846 | 2846 | | |
2847 | 2847 | | |
2848 | 2848 | | |
| 2849 | + | |
| 2850 | + | |
| 2851 | + | |
| 2852 | + | |
| 2853 | + | |
| 2854 | + | |
| 2855 | + | |
| 2856 | + | |
| 2857 | + | |
| 2858 | + | |
| 2859 | + | |
| 2860 | + | |
| 2861 | + | |
| 2862 | + | |
| 2863 | + | |
| 2864 | + | |
| 2865 | + | |
| 2866 | + | |
| 2867 | + | |
| 2868 | + | |
| 2869 | + | |
| 2870 | + | |
| 2871 | + | |
| 2872 | + | |
| 2873 | + | |
| 2874 | + | |
| 2875 | + | |
| 2876 | + | |
| 2877 | + | |
| 2878 | + | |
| 2879 | + | |
| 2880 | + | |
| 2881 | + | |
| 2882 | + | |
| 2883 | + | |
| 2884 | + | |
| 2885 | + | |
| 2886 | + | |
| 2887 | + | |
| 2888 | + | |
| 2889 | + | |
| 2890 | + | |
| 2891 | + | |
| 2892 | + | |
| 2893 | + | |
| 2894 | + | |
| 2895 | + | |
| 2896 | + | |
| 2897 | + | |
| 2898 | + | |
| 2899 | + | |
| 2900 | + | |
| 2901 | + | |
| 2902 | + | |
| 2903 | + | |
| 2904 | + | |
| 2905 | + | |
| 2906 | + | |
| 2907 | + | |
| 2908 | + | |
| 2909 | + | |
| 2910 | + | |
| 2911 | + | |
| 2912 | + | |
| 2913 | + | |
| 2914 | + | |
| 2915 | + | |
| 2916 | + | |
| 2917 | + | |
| 2918 | + | |
| 2919 | + | |
| 2920 | + | |
| 2921 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
339 | 339 | | |
340 | 340 | | |
341 | 341 | | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
342 | 351 | | |
343 | 352 | | |
344 | 353 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
0 commit comments