Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

How can a zero byte text file generate a hash when hashed with sha1sum, sha256sum etc? What data are the programs hashing to generate a hash value?

Ta

QuickHash in Linux

Terminal Commands

share|improve this question

2 Answers 2

up vote 8 down vote accepted

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.

share|improve this answer
    
Well you learn something new everyday! I didn't know there was a "null value" for every algorithm. Many thanks. –  Gizmo_the_Great Feb 26 '13 at 23:28
    
The hash algorithms have a predetermined initial condition - kind of like a number which they start with and mutate as they read in data. If there's no data to read, the hash is just a result of that preset initial condition. –  Kevin Feb 26 '13 at 23:31

All hash algorithms in Quick Hash are Merkle–Damgård constructions. As those, they pad the message to a mutiplie of the block size 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.