pHash is an implementation of various perceptual hashing algorithms. A perceptual hash is a fingerprint of an audio, video, or image file that is mathematically based on the audio or visual content contained within. Unlike cryptographic hash functions that rely on the avalanche effect of small changes in input leading to drastic changes in the output, perceptual hashes are "close" to one another if the inputs are visually or auditorily similar. As a result, perceptual hashes must also be robust enough to take into account transformations that could have been performed on the input.