Using 7-zip hashing to compare directories and files

Post date: Dec 21, 2014 1:17:31 PM

You can use 7-zip (7z, 7zip, 7z.exe) to get file hashes easily, by using new h parameter. So 7z h -scrcsha256 produces SHA256 hashes of the files in the directly and subdirectories. That's really easy and secure way to verify that the files are same on recipient and sender. This won't work if you're using too old version, upgrade to latest version. If you don't specify any parameter, CRC32 will be produced, in most of cases that's easier to compare and good enough as it still contains almost 4.3 billion possibilities for different file content. When using UI (7zFM File Manager) you'll find the file hashes under right click menu. 7-zip also supports other hash types like CRC-32 (CRC32), CRC-64 (CRC64), SHA-256 (SHA256) and SHA-1 (SHA1 160 bits) which you can select using the -s parameter on command-line including Linux and Windows versions.

Example:

$ 7z h *.txt

7-Zip [64] 9.35 beta Copyright (c) 1999-2014 Igor Pavlov 2014-12-07 Scanning CRC32 Size Name -------- ------------- ------------ CDF68C0E 40158 History.txt FDDB6E75 1927 License.txt 7ED55530 1683 readme.txt -------- ------------- ------------ 4AA74FB3 43768 Files: 3 Size: 43768 CRC32 for data: 4AA74FB3 CRC32 for data and names: 2F50438F

Now it's really easy to see the individual file hashes as well as final hash for data and names. Hash checksum allows really easy comparison of even large directory and file structures including the data content. you can easily verify whole paths over chat, telephone or what ever so nothing hash changed due virus infection, malicious purposes or just old fashioned bit rot aka plain corruption and the stuff you got it's really what it is supposed to be. I know many fellow administrators just use a plain file size to check file content, but that's not a really good way of doing it. Because file content might not be what it seems.

Of course similar results can be achieved using crc32 or sha256sum and using those with tar for complete paths.