A function that creates a small range domain
For security, MD5 or SHA-1 should not be used; for speed, BLAKE, MurmurHash, or xxHash are faster alternatives
Cryptographic Requirements
1. Pre-image resistance (One-wayness)
Given a hash it should be difficult to find
2. Second pre-image resistance (Weak collision resistance)
Given input it should be difficult to find
3. (Strong) Collision resistance
It should be difficult to find two messages such that having same hash
Hash Functions


Hash Function Notion
Speed test
Speed Hashing
Hashes are a bit like fingerprints for data. A given hash uniquely represents a file, or any arbitrary collection of data. At least in theory. This is a 128-bit MD5 hash you're looking at above, so it can represent at most 2128 unique items, or 340 trillion trillion trillion. In
https://blog.codinghorror.com/speed-hashing/

암호화 MD5 vs SHA256
MD5는 메세지 축약 알고리즘으로써, 파일 무결성 검사용도로 많이 쓰이고 있다. 128bit 의 해쉬를 제공하며, 암호와와 복호화를 통하여 보안용도로도 많이 쓰인다. 하지만 암호화 결함이 발견되어 보안 용도로 사용할때에는 SHA와 같은 다른 알고리즘을 사용하는것이 권장되고 있다고 한다. SHA (Sechre Hash Standard) SHA(Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 서로 관련된 암호학적 해시 함수들의 모음이다.
https://js2prince.tistory.com/entry/%EC%95%94%ED%98%B8%ED%99%94-MD5-vs-SHA256

xxHash - Extremely fast hash algorithm
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).
https://chromium.googlesource.com/external/github.com/Cyan4973/xxHash/+/375d401bd4a4eba07ee75d6e627546052cb5b0ec/README.md

Seonglae Cho