fnv1a - FNV-1a non-cryptographic hash function

  •        177

FNV-1a has outstanding distribution and collisions are rare.FNV hashes are designed to be fast while maintaining a low collision rate. The FNV speed allows one to quickly hash lots of data while maintaining a reasonable collision rate. The high dispersion of the FNV hashes makes them well suited for hashing nearly identical strings such as URLs, hostnames, filenames, text, IP addresses, etc.




Related Projects

bloomfilter.js - JavaScript bloom filter using FNV for fast hashing

  •    Javascript

JavaScript bloom filter using FNV for fast hashing

xxHash - Extremely fast non-cryptographic hash algorithm

  •    C

xxHash is an Extremely fast Hash algorithm, running at RAM speed limits. It successfully completes the SMHasher test suite which evaluates collision, dispersion and randomness qualities of hash functions. Code is highly portable, and hashes are identical on all platforms (little / big endian).Q.Score is a measure of quality of the hash function. It depends on successfully passing SMHasher test set. 10 is a perfect score. Algorithms with a score < 5 are not listed on this table.

jshashes - Fast and dependency-free cryptographic hashing library for node

  •    Javascript

jshashes is lightweight library implementing the most extended cryptographic hash function algorithms in pure JavaScript (ES5 compliant).You can use the simple command-line interface to generate hashes.

node-hashring - hashring is a consistent hashing algorithm for Node

  •    Javascript

The HashRing module provides consistent hashing that is compatible with the original libketama library that was developed at last.fm. In addition to beeing compatible with libketama it's also compatible with the hash_ring module for Python. See the compatiblity section of the API for more details on this. The advised installation of module is done through the Node package manager (npm).

Password4j - Cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various cryptographic hash functions.

  •    Java

Password4j is a Java user-friendly cryptographic library for hashing and checking passwords with different Key derivation functions (KDFs) and Cryptographic hash functions (CHFs). The library fully supports Argon2, BCrypt, SCrypt and PBKDF2 and can produce and handle cryptographic salt and pepper.

Zero-Allocation-Hashing - Zero-allocation hashing for Java

  •    Java

Zero-allocation, pretty fast implementations of non-cryptographic hash functions for byte sequences or blocks of memory

imagehash - 🌄 Perceptual image hashing for PHP

  •    PHP

A perceptual hash is a fingerprint of a multimedia file derived from various features from its content. Unlike cryptographic hash functions which rely on the avalanche effect of small changes in input leading to drastic changes in the output, perceptual hashes are "close" to one another if the features are similar. Perceptual hashes are a different concept compared to cryptographic hash functions like MD5 and SHA1. With cryptographic hashes, the hash values are random. The data used to generate the hash acts like a random seed, so the same data will generate the same result, but different data will create different results. Comparing two SHA1 hash values really only tells you two things. If the hashes are different, then the data is different. And if the hashes are the same, then the data is likely the same. In contrast, perceptual hashes can be compared -- giving you a sense of similarity between the two data sets.

Essentials - General purpose utilities and hash functions for Android and Java (aka java-common)

  •    Java

Essentials are a collection of general-purpose classes we found useful in many occasions. This project is bare bones compared to a rich menu offered by Guava or Apache Commons. Essentials is not a framework, it's rather a small set of utilities to make Java standard approaches more convenient or more efficient.

hasha - Hashing made simple. Get the hash of a buffer/string/stream/file.

  •    Javascript

Hashing made simple. Get the hash of a buffer/string/stream/file.Convenience wrapper around the core crypto Hash class with simpler API and better defaults.

Testing cryptographic hash functions

  •    C

Utilities for measuring characteristics of cryptographic hash functions: avalanche property, (partial) collision search, Maurer's universal statistical test, Filiol's Mobius ANF statistical analisys. EdonC, EdonR, MD5 and SHA-1 hash-plugins included.

murmurhash-js - An optimized JavaScript implementation of the MurmurHash algorithms.

  •    Javascript

An optimized JavaScript implementation of the MurmurHash algorithms. These algorithms take a JavaScript string (and a seed), and quickly create a non-cryptographic 32-bit hash from it. And by quick I mean sub-millisecond performance.

multihash - Self describing hashes - for future proofing

  •    Shell

Multihash is a protocol for differentiating outputs from various well-established cryptographic hash functions, addressing size + encoding considerations. It is useful to write applications that future-proof their use of hashes, and allow multiple hash functions to coexist. See jbenet/random-ideas#1 for a longer discussion.

memcached - A fully featured Memcached client build on top of Node

  •    Javascript

memcached is a fully featured Memcached client for Node.js. memcached is built with scaling, high availability and exceptional performance in mind. We use consistent hashing to store the data across different nodes. Consistent hashing is a scheme that provides a hash table functionality in a way that adding or removing a server node does not significantly change the mapping of the keys to server nodes. The algorithm that is used for consistent hashing is the same as libketama. There are different ways to handle errors for example, when a server becomes unavailable you can configure the client to see all requests to that server as cache misses until it goes up again. It's also possible to automatically remove the affected server from the consistent hashing algorithm or provide memcached with a failover server that can take the place of the unresponsive server.

smhasher - Automatically exported from code.google.com/p/smhasher

  •    C++

This is the home for the MurmurHash family of hash functions along with the SMHasher test suite used to verify them. SMHasher is released under the MIT license. All MurmurHash versions are public domain software, and the author disclaims all copyright to their code. SMHasher is a test suite designed to test the distribution, collision, and performance properties of non-cryptographic hash functions - it aims to be the DieHarder of hash testing, and does a pretty good job of finding flaws with a number of popular hashes.

object-hash - Generate hashes from javascript objects in node and the browser.

  •    Javascript

Generate hashes from objects and values in node and the browser. Uses node.js crypto module for hashing. Supports SHA1 and many others (depending on the platform) as well as custom streams (e.g. CRC32). Starting with version 1.1.8 (released April 2017), new versions will consider the exact returned hash part of the API contract, i.e. changes that will affect hash values will be considered semver-major. Previous versions may violate that expectation.

BD File Hash


BD File Hash is a convenient file hashing and hash compare tool for Windows which currently works with MD5, SHA-1, SHA-256, and SHA-512 algorithms.

password-hashing - Password hashing code.

  •    PHP

This repository contains peer-reviewed libraries for password storage in PHP, C#, Ruby, and Java. Passwords are "hashed" with PBKDF2 (64,000 iterations of SHA1 by default) using a cryptographically-random salt. The implementations are compatible with each other, so you can, for instance, create a hash in PHP and then verify it in C#. This code uses the PBKDF2 algorithm to protect passwords. Better technologies for protecting passwords exist today, like bcrypt, scrypt, or Argon2. Before using this code, you should try to find a well-reviewed and carefully-made implementation of one of those algorithms for the language that you are using. These algorithms are "memory hard," meaning that they don't just need a lot of CPU power to compute, they also require a lot of memory (unlike PBKDF2). By using a memory hard algorithm, your passwords will be better protected.

HashPump - A tool to exploit the hash length extension attack in various hashing algorithms

  •    C++

A tool to exploit the hash length extension attack in various hashing algorithms. Currently supported algorithms: MD5, SHA1, SHA256, SHA512.

Bee2 - A cryptographic library

  •    C

Bee2 is a cryptographic library which implements cryptographic algorithm and protocols standardized in Belarus. Additionally, Bee2 implements digital signature algorithms standardized in Russia and Ukraine.