How can zero byte files generate a hash value?

Hash algorithms read the input and process it, no matter if there's data at all. This is a valid and wanted behaviour and is even used to verify if a certain implementation is correct. This leads to "null-hashes" for all major algorithms.

To sum it up: da39a3ee5e6b4b0d3255bfef95601890afd80709 is the sha1-hash for an empty file everywhere, the same is true with the null-hashes of other alrogrithms.


All hash algorithms in Quick Hash are Merkle–Damgård constructions. As such, they pad the message to a multiple of the block size.

Quick Hash's algorithms achieve this by appending a 1 bit, as many 0 bits as needed, and finally the message length.

This allows hashing messages of arbitrary length, including zero-length messages.

Tags:

Sha1

Hashing