7

My understanding is that both a fingerprint and a hash are functions that take as input some arbitrarily long bitstring, and output a bitstring of a fixed size. The Wikipedia page for Hash Functions says:

Hash functions are related to (and often confused with) ... fingerprints

But try as I may, I can't find any sources that mention the difference between the two. Do you know what the difference between a hash function and a fingerprinting function is?

  • Fingerprint or digest is the result of a hash fucntion, not the function. – gammatester Nov 09 '17 at 16:37
  • Thanks for the comment. I'm asking about the difference between hashing functions and fingerprinting functions. Or alternatively, the difference between a hash and a fingerprint. The wikipedia page implies that there is a difference between the two, though you're right in that it uses the wrong terminology (it should say hash functions are related to fingerprinting functions). – Christopher Shroba Nov 09 '17 at 16:42
  • When comparing both descriptions I see a difference in the length of the result, for hash functions it is fixed but there is no such restriction of fingerprinting functions. But I am no expert, if you need a definite answer you may ask at https://crypto.stackexchange.com. – gammatester Nov 09 '17 at 16:49
  • A hash function is something which assign a shorter bit string for each item in a large pool of items. For practical purposes, the hash values for different items should seldom to collide but there is no guarantee they won't collide at all. A fingerprint is supposed to be something that uniquely identifies the original item for all practical purposes. – achille hui Nov 09 '17 at 16:52
  • @gammatester A "hash" is the result of a hash function, too. – Geremia May 20 '18 at 03:26

2 Answers2

3

It is my understanding that cryptographic hash functions need to be resistant to reversing. I.e. One should not be able to calculate possible messages from a hash value. If this were not the case, hashing passwords wouldn't be (as) secure.

Fingerprint functions, on the other hand, are fine even if you can calculate possible messages from a fingerprint. They just need to identify a file/object.

ispiro
  • 161
  • I'd agree this is the difference between "cryptographic hash functions" (like you said) and fingerprints, but I think it's just as true to say it's the difference between "cryptographic hash functions" and "hash functions", so I think this answers a slightly different question than the one I asked. Thanks nonetheless for the input! – Christopher Shroba Mar 23 '23 at 19:31
2

I had the same question, it looks like the difference is the same as the difference between $P \Rightarrow Q$ and $P \iff Q$. Strictly speaking if $h$ is a hash function then it must be a fingerprinting function however the converse is not true, i. e., if $h$ is a fingerprinting function then we don't know if it is a hash function or not.

Notice that here by a hash function we mean what is colloquially referred to as a cryptographic hash function. If the context differentiates between a cryptographic hash function and just a hash function, that function may be a fingerprinting function and not a hash function. The Wikipedia article: Fingerprint (computing) says:

Mainstream cryptographic grade hash functions generally can serve as high-quality fingerprint functions, are subject to intense scrutiny from cryptanalysts, and have the advantage that they are believed to be safe against malicious attacks.

Therefore it feels like a set of all hash functions $\mathcal{H}$ is a smaller subset of the set of all fingerprinting functions $\mathcal{F}$. Therefore, we may write:

$$ f \in \mathcal{H} \Rightarrow f \in \mathcal{F} $$

scribe
  • 588
  • This doesn't really match mainstream usage of the word "hash" in computer science, where "hash tables", which are one of the most common data structures, generally do not use cryptographic hashes (although some newer implementations do to prevent hash flooding attacks). – Ryan McCampbell Aug 19 '25 at 16:42