Cryptographic Hash Algorithms are **one-way** hashing algorithms that are designed for **collision-resistant**.

For any arbitrary length input, these hash functions should produce a fixed-length output.

The chance to find collision (by brute force) for these algorithms is extremely little.

Some of the properties of an **ideal cryptographic hash function** are:

- Deterministic: the same message should always result the same hash
- Quick: should be fast to compute the hash for any given value
- Hard to analyze: a small change in the input should totally change the output value.
- Irreversible: should be hard or impossible to reverse the hash to its original input.
- No collisions: should be extremely hard to find two different messages that produces the same hash.

Some modern cryptographic hash functions families are considered secure enough for most applications:

**SHA-2**: based on Merkle–Damgård construction, like SHA-256, SHA-384, SHA-512,...**SHA-3**: more secure than SHA-2 family, they're based on sponge construction, like SHA3-224, SHA3-256, SHA3-384, SHA3-512,...

**Source:** Practical Cryptography for Developers (https://cryptobook.nakov.com/cryptographic-hash-functions)