Search code examples
sha1checksum

How is a cryptographic checksum of an empty file computed?


I've just ran

$ sha1sum myfile

out of boredom.

myfile is an empty file which I created with

$ touch myfile

I was surprised that sha1sum actually returned a checksum. Aren't these checksums supposed to be computed from some non-empty content? Is the checksum for an empty file just a hardcoded "magic" constant?


Solution

  • There's nothing fundamentally different with an empty message from a message with say a byte of data. The algorithm is described here http://en.wikipedia.org/wiki/SHA-1#Examples_and_pseudocode and it's fine with zero data.

    Eg.

    Pre-processing:

    append the bit '1' to the message append 0 ≤ k < 512 bits '0', so that the resulting message length (in bits) is congruent to 448 (mod 512)