Коллизией хэш-функции H называется ситуация, при которой для двух различных входов T1 и T2 выполняется условие H(T1)=H(T2), T1<>T2 Большинство хэш-функций имеют вероятные коллизии, но для хороших функций они возникают намного реже (или сложнее в поиске) по сравнению с плохими. В некоторых частных случаях, для которых заранее известно все возможное множество входных данных, возможно создать хорошие хэш-функции, отображающие все множество входов на множество различных выходов. Но для функций, принимающих вход переменной длины и возвращающих хэш постоянной длины (такие, как MD5), коллизии будут существовать всегда, поскольку любому значению хэш-функции может быть сопоставлено бесчисленное множество различных входов.
Пусть дан блок данных Х. Если легко найти такие x и y, x<>y что H(x) = H(y), то такая ситуация называется слабой устойчивостью к коллизиям. Наоборот, если подобный поиск является сложным, то считается что функция имеет высокую устойчивость к коллизиям.
Важнейшим свойством криптографической хэш-функции является вычислительная сложность нахождения коллизии. Значение хэш-функции может быть использовано для подтверждения неизменности исходной информации путем публикации цифровой подписи если нет вероятности найти коллизию. Если в данном контексте указывает на существование любого метода генерации коллизий который быстрее чем полный перебор.
Процесс поиска двух произвольных значений, для которых значение хэш-функции совпадает, называется атакой первого прообраза; поиск одного произвольного значения, результат хеширования которого совпадает с другим указанным значением хэш-функции, называется атакой второго прообраза. Успешное проведение атаки второго прообраза намного более серьезно, чем успешное проведение атаки первого прообраза.