Skip to main content
1 of 2
otus
  • 32.4k
  • 5
  • 73
  • 167

It is my understanding that a KDF adds entropy, whereas a hash loses information.

KDFs are hash functions (or families of hash functions, depending on your definition), just ones with a lot of complexity. It is sometimes said that they "add entropy" but that usually means either 1) they combine entropy from a salt into the password hash (which you can do with any hash function) or 2) they make the password more computationally difficult to crack as if it had more entropy (also called computational entropy).

Likewise, both KDFs and hashes "lose information" in the sense that collisions usually mean their image is smaller than their domain. That does not make them stronger, however, since if two passwords give the same output hash, either can be used as authentication.

So using a hash after a KDF is at best redundant and can lead to less security through e.g. increased collisions.

otus
  • 32.4k
  • 5
  • 73
  • 167