Hashing algorithm
Put simply, a hashing algorithm converts an input (often a string of some length) into an output value, often a number or an alphanumeric value. This output value is ideally perfectly unique to each unique input, and is also reliably reproducible when supplied the same input.
Collisions
When a hashing algorithm yields the same output for multiple inputs, these inputs are “colliding”. The hash function outputs the same “hash key” for multiple inputs, so these inputs cannot be differentiated by their hash function output. This is known as a “collision”. Collisions are virtually unavoidable, but they can be reduced as hashing algorithms improve.