Windows MD5 Sum generator.

How does this thing work?!

The best way to answer that question is to explain what the md5summer does and how it does it. I'll attempt to do so in an F.A.Q. style.

What's an MD5 sum?

An MD5 sum is a computed "hash" of a stream of data. In the case of the md5summer that stream is the contents of a file.
Basically the md5summer takes a file of arbritrary length and reduces it down to a 128bit fingerprint. This fingerprint is extremely unlikely to be the same for any other file and will change if the contents of the file changes by even the tiniest little bit.

How does the MD5summer use them?

The md5summer uses these hashes to compare a file before and after an operation. For example you might want to check a the files on a CD were written without error, or that the ISO you just downloaded is OK. Perhaps you just want to see what files have changed since last month or check that critical executables haven't been effected by a virus.
Whatever the reason, the md5summer is made for file comparison.

How do I create a .md5 file?

First, Select an appropriate root folder, click Create, then select the files you wish to md5sum (how to add files), then click OK. The md5summer will create md5 hashes of each of the selected files, reporting any errors it encounters, and ask you to save the result when it is complete.
You can pause the md5summer at any point by clicking Cancel, then resume by clicking Restart. Beware that if you cancel in the middle of a large file, Restarting will start at the beginning of that file, not where you cancelled.
You can save the result as many times as you wish by clicking Save on the creation window.

How do I verify a .md5 file?

Again, Select an appropriate root folder, Click Verify, then select the .md5 file you want to verify. The md5summer will compare the md5sum of each file and report the result. When it's done you can save the result to a text file by clicking Save.

What's this "Root folder" thing?

The md5summer stores its output in a way that is designed for portability and is compatible with GNU md5sum.
A .md5 file looks like this:

81da4fd248fe4dd0b3e7bbfa4310d508 *Program Files/arcldr.exe
1fb958e5c82d04361edf45cbb0b1c831 *Program Files/Accessories/MSPAINT.EXE

The first part of each line is the hash represented in hexadecimal. A space and an asterisk (*) seperate this from the file path and name. You'll notice that the begining of the path is missing, in this case "c:\". This is the root folder part. We can substitute any root folder to make a valid path. Lets say for example I write these files to a CD. When I verify the CD, the path would change to d:\Program... so I set my root folder to "d:\".

When creating a .md5 file, you would normally select the deepest folder that contains all the files I want to md5sum. In the above example, I should set my root folder to "c:\program files\", the new output file would look like this:

81da4fd248fe4dd0b3e7bbfa4310d508 *arcldr.exe
1fb958e5c82d04361edf45cbb0b1c831 *Accessories/MSPAINT.EXE

When verifying a .md5 file, you should select the folder which replaces the one selected when creating the .md5 file.

For example, if I transfered those file to a friends PC, to a folder called "h:\backups\Lukes program files\". Then to verify the files, I would select that as the root folder so that it checks "h:\backups\Lukes program files\arcldr.exe" and "h:\backups\Lukes program files\Accessories\MSPAINT.EXE"

How do I select files to md5sum?

In the file selection dialog there are 2 panels and 6 buttons: