Application Icon multiSum

Download: multiSum_v1.4.1.zip (51.29 KB) – 2019-12-14
( View sha256 hashes )

multiSum_v1.4.1 ReadMe

MultiSum is a command line file hasher. Most of the other tools I've seen only focus on a single hash, or don't allow for parallel calculations. Some of my applications needed to collect the CRC, md5 and sha from a bunch of large files, which is painful if you have to do three reads. This program makes the most common hashes available in one tool and can calculate them all on a single pass through a given file; it uses one thread per selected hash to leverage multi-core CPU's. An interesting side effect is that if you run enough hashes in parallel you will be restricted by memory bandwidth, rather than CPU or IO.

In addition to computing many hashes in parallel, this tool also features Unicode and long path support, and can handle NTFS alternate data streams.

Output is completely customizable, so you can use multiSum to generate .sfv files, .md5 files, or anything else. Check the examples in the usage instructions. Supported hashes are: Fletcher32, Adler32, CRC32 (optimized implementation, outperforms the native windows function), MD2, MD4, MD5, RIPEMD160, SHA1, various SHA2, various SHA3, various Tiger, various Blake2B, and Whirlpool. KangarooTwelve & others might be coming in a future version.

The tool also has a verification mode for processing existing checksum files; the following types are supported: .sfv, .md5, .sha1, .sha256, .blake2/.blake2b.

Finally, a benchmarking mode is included to test hash speeds.

Note on CNG versions: Cryptograny Next Generation (CNG) versions of supported hashes are made available. These have identical output to their non-CNG counterparts but can be faster to calculate due to hardware acceleration. The SHA256CNG and MD4CNG versions in particular are quite a lot faster for me, while MD2 still sucks; run the benchmark mode to see if they'll help. Thanks to Andrew Arnott for collecting the bcrypt.dll p/invokes. (These may not work on very old windows versions, as CNG was introduced in Windows vista, so I'm keeping the old managed code versions of MD2 and MD4 as they are, they don't take up much space anyway.)

Note on tiger: The TIGER4_ variants are an extended round version (8 extra rounds) with output identical to php's "tiger192,4". I have no idea what the impetuous of it was, or if there's a settled standard for the extended round version, but whatever, it seems to be popular...

Usage Notes

Version 4.6.2 or better of the .net framework is recommended. Get it from Microsoft.

No installation; just unpack and run.

Command-line Usage:

multiSum.exe [-s:SUBDIRECTORY_FLAG] [-o:OUTPUT_FORMAT] FILES_AND_FOLDERS
   File or directory names must be quoted if they contain spaces.
   More than one file or folder can be listed, separated by spaces.

SUBDIRECTORY_FLAG:
   Must be either on (-s:1) or off (-s:0)
   If any directories are specified, this flag determines if we hash files found in all subdirectories or only those immediately inside the specified directory.
   Defaults is no subdirectory processing: -s:0

OUTPUT_FORMAT String:
   The format string defines how the programs output looks, as well as what hashes are calculated; the string must be quoted if it contains spaces.
   For each file processed, the following replacements are made in the format string, and that string is output:

   Only the hashes specified in the format string will be calculated.
   The default format is: "%FILENAME% %MD5%\n"

Arguments are processed left to right. The subdirectory flag and the output format string can be added as many times as desired to change the processing of files/directories to their right.

If you use multisum from within a .bat file, remember you have to escape any percent signs in the args, eg: multisum.exe -o:%MD5% c:\test.txt should be multisum.exe -o:%%MD5%% c:\test.txt in a .bat file.

Other Args/Modes:

Examples:
   This command runs the program on a single directory and prints the filenames & md5 hashes, one per line:
      multisum.exe "-o:%MD5% %FILENAME%\n" c:\Text_files\
   This is tab separated hashes, including subdirectories:
      multisum.exe -o:%FILENAME%\t%SHA1%\t%SHA256\n -s:1 c:\windows
   This command creates a .sfv checksum file for the current directory:
      multisum.exe -o:%.sfv% -s:1 . > checksum.sfv
   This command verifies the previously created checksum file:
      multisum.exe -v:checksum.sfv

ChangeLog

License Information

This software includes code or resources from the following sources:

This software is distributed as-is, without any representations or warranties of any kind.
The author of this software imposes no additional license terms or limits upon its use or redistribution.

Feedback/Bugs

Send to utils@cresstoehne.com
App Website

DocumentId: f3b1a22c3ed43443bf16cfde5adf4a54f6cd1645 EOF


multiSum Screenshot