작은 범위의 정의역을 만들어주는 함수
보안을 위해 md5나 sha1을 쓰면 안되고, 속도를 위해서도 BLAKE나 murmurhash xxhash가 더 빠르다
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