Difference between hash function In some paper, the terms "cryptographic hash function" and "deterministic hash function" would appear?
I'm wondering what's their difference, and are there some other types of hash functions?
Like the cryptonote whitepaper in 4.2.1
A hash function is a function taking an arbitrary length string as the input, and output a fixed length string. All hash functions are deterministic (correct me if I am wrong). Generally, a good hash function should map the inputs to its output range as uniformly as possible. Cryptographic hash functions have more requirements for security. The three most commonly used security properties are:


One-way: Given a hash value $h$ it should be difficult to find any message $m$ such that $h = hash(m)$. 
weak collision resistance: Given an input $m_1$, it should be difficult to find a different input $m_2$ such that $hash(m_1) = hash(m_2)$.
collision resistance: It should be difficult to find two different messages $m_1$ and $m_2$ such that $hash(m_1) = hash(m_2)$.