diff options
author | nirav <nirav@teisuu.com> | 2020-11-29 13:16:53 +0000 |
---|---|---|
committer | nirav <nirav@teisuu.com> | 2020-11-29 13:16:53 +0000 |
commit | 9cb655becbdb58c7dfe9f6e72f8915149c1fce61 (patch) | |
tree | a4c0aefb53dca32a14488c70ccbea41926261699 /fnv.c | |
download | hash-master.tar.gz hash-master.zip |
Diffstat (limited to 'fnv.c')
-rw-r--r-- | fnv.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -0,0 +1,26 @@ +#include <stdlib.h> +#include <stdint.h> + +uint64_t fnv1_64(const void *src, size_t len) +{ + const unsigned char *d = (const unsigned char *)src; + uint64_t h = 0xcbf29ce484222325; + size_t i; + for (i = 0; i < len; i++) { + h *= 0x100000001b3; + h ^= d[i]; + } + return h; +} + +uint64_t fnv1a_64(const void *src, size_t len) +{ + const unsigned char *d = (const unsigned char *)src; + uint64_t h = 0xcbf29ce484222325; + size_t i; + for (i = 0; i < len; i++) { + h ^= d[i]; + h *= 0x100000001b3; + } + return h; +} |