# Cryptographic Hash

A cryptographic hash function is a hash function that satisfies the properties of pre-image resistance, second pre-image resistance and collision resistance. Here, a hash function is a mathematical algorithm that maps data of an arbitrary size (or “message”) to a bit array of a fixed size (the “hash value”, “hash”, or “message digest”), that is, a function that takes a string of any size as input and produces a fixed length value.

Pre-image resistance
Given a hash value h, it should be difficult to find any message m such that

h = hash(m)

Second pre-image resistance (weak collision resistance)
Given an input m1, it should be difficult to find a different input m2 such that

hash(m1) = hash(m2)

Collision resistance (strong collision resistance)
It should be difficult to find two different messages m1 and m2 such that

hash(m1) = hash(m2)

A pair of messages that has the same hash value is called a cryptographic hash collision.

Please share if you like this post: