# Hashing

## Links

- xxHash - Extremely fast non-cryptographic hash algorithm.
- Fairly tale cryptography 2: hashes
- FarmHash - Family of hash functions.
- Articles on hashing implementations
- Fast and Scalable Minimal Perfect Hash Functions in Rust
- Robin Map - C++ implementation of a fast hash map and hash set using robin hood hashing.
- Robin Hood Hashing
- Auto-Encoding Twin-Bottleneck Hashing
- Shenanigans With Hash Tables (2019)
- SMhasher - Hash function quality and speed tests.
- Concurrent Hash Tables: Fast and General
- SHA-256 Animation (HN)
- SMHasher - Test suite designed to test the distribution, collision, and performance properties of non-cryptographic hash functions.
- wyhash - Dream fast hash function and random number generators that passed SMHasher, BigCrush and practrand. (HN)
- FunctionSimSearch - Example C++ code to demonstrate how to do SimHash-based similarity search over CFGs extracted from disassemblies.
- HighwayHash - Native Go version of HighwayHash with optimized assembly implementations on Intel and ARM.
- hashring - Implements consistent hashing that can be used when the number of server nodes can increase or decrease (like in memcached).
- t1ha - One of the fastest hash functions.
- hashmap.c - Hash map implementation in C.
- Hashmaps Benchmarks (2019)
- tsip - Go, amd64, C, and Rust implemtations of a small fast string hashing function.
- High Speed Hashing for Integers and Strings (2020)
- Optimizing 128-bit Division (2020)
- Looks Like It [Perceptual hash algorithms]
- Ask HN: Is There a Known Recursive Hash? (2020)
- aHash - Fastest, DOS resistant hash currently available in Rust.
- HashSearch - Searches Hash APIs and Google to crack your hash quickly.
- Rust library for homomorphic hashing (Lobsters)
- SRI Hash Generator
- Hash, displace, and compress (Code)
- Hashids - Generate short unique ids from integers. (JS Code) (Go Code)
- Simhashing (hopefully) made simple (2012)
- hash-wasm - Lightning fast hash functions using hand-tuned WebAssembly binaries.
- Comparing ahash to other hashing algorithms (Lobsters)
- Consistent Hashing: Algorithmic Tradeoffs (2018)
- How to implement a hash table (in C) (2021) (HN)
- Live-coding a linked hash map in Rust (2018)
- Representing SHA-256 Hashes As Avatars (2021) (HN)
- Introduction to Locality-Sensitive Hashing (2018) (HN)
- An efficient way to make hash maps with insertion ordering (2021) (Lobsters) (HN)
- Meow Hash - Fast hash taking 128 bytes of seed and producing 128 bits of output. (Cryptanalysis of Meow Hash)
- The Problem with Perceptual Hashes (2021) (HN)
- An Introduction to Hashing in the Era of Machine Learning (2018)
- AppleNeuralHash2ONNX - Convert Apple NeuralHash model for CSAM Detection to ONNX. (HN) (Reddit)
- Haraka - Secure and efficient short-input hash function.
- borsh - Binary Object Representation Serializer for Hashing.
- Less Hashing, Same Performance: Building a Better Bloom Filter
- Implementing Hash Tables in C (2021) (HN)
- pHash - Open source perceptual hash library. (Web)
- Consistent Hashing for Dummies (2021)
- Meow Hash (HN)
- Poseidon Hash - ZK-friendly Hashing.
- Neptune - Rust implementation of the Poseidon hash function tuned for Filecoin.
- On the Optimal Time/Space Tradeoff for Hash Tables (2021)
- Hash collisions and their exploitations
- Introducing Consistent Hashing (2020)
- Reversing an integer hash function
- Learning to Break Deep Perceptual Hashing: The Use Case NeuralHash (2022)
- multihash - Protocol for differentiating outputs from various well-established cryptographic hash functions, addressing size + encoding considerations.
- SHA-256 explained step-by-step visually (Code) (HN)
- ImageHash - Python Perceptual Image Hashing Module. Image hashes tell whether two images look nearly identical.
- UMASH - Fast almost universal 64-bit string hash.
- SharedHashFile: Share Hash Tables With Stable Key Hints Stored In Memory Mapped Files Between Arbitrary Processes
- Hash Function Prospector - Automated integer hash function discovery.
- md5-tools - Lightweight Rust MD5/SHA tools.
- The many flavors of hashing (2022) (Lobsters) (HN)
- A Fast, Minimal Memory, Consistent Hash Algorithm (2014)
- Implementing Bitcask, a Log-Structured Hash Table (2022) (Code)
- The image in this post displays its own MD5 hash (HN)
- Faster hash table probing (2022)
- Consistent Hashing (2022)
- Hash-based digital signatures (almost) from scratch (2022)
- Hashing Apples, Bananas and Cherries (2022)
- Homomorphic hashing for secure update propagation (2019)
- Introduction to Locality-Sensitive Hashing (2018) (HN)
- Perfect Hash - Performant, parallel, probabilistic, random acyclic-graph, low-latency, perfect hash generation library.
- The Smallest Hash Table (2023) (HN)
- Hash Tables FTW (2023)
- Optimizing Open Addressing (2023) (Lobsters)
- The World's Simplest Lock-Free Hash Table (2013)
- Modern perfect hashing for strings (2023)
- Hash Functions (HN)
- Hashing (HN)
- fnv1a - FNV-1a non-cryptographic hash function.