checksum tricks and tips
hints, secrets, behaviours, assumptions and more..

Get the most from your hashing!

checksum represents a whole new way of working with hashes. This page aims to help you get the most out of the experience, wherever you're at..


Absolute beginners..

The basics: checksum creates "hash files". A hash file is a simple, plain text file containing one or more file hashes, aka. "checksums". Hashes are small strings which uniquely represent the data that was hashed. e.g..

cf88430390b98416d1fb415baa494dce *08. Allow Your Mind To Wander.mp3

(Mike Mainieri - Journey Thru An Electric Tube [1968] - I have the vinyl)

If you want to know more about the algorithms that checksum uses to hash files (currently MD5 and SHA1), see here.

Once these hashes have been created for a particular file or folder (or disk), you have a snapshot that can be used, at any time in the future, to verify that not one bit of data has changed. And I do mean a "bit"; even the slightest change in the data will, thanks to the avalanche effect, produce a wildly different hash, which is what makes these algorithms so good for data verification.

 
an imagean imagean imagean image
 


The basic checksum tasks..

Most people will simply install checksum, and then use the Explorer context (right-click) menu to create and verify checksums, rarely needing any of the "extra" functionality that lurks beneath checksum's simple exterior. After all, checksum is designed to save you time, as well as aid peace of mind. This is how I mostly use it, too..

Create checksums..

Right-click a file, the checksum option produces a hash file (aka. 'checksum file') with the same name as the file you clicked, except with a .hash extension (or .md5/.sha1, if you use those, instead). So a checksum of some-movie.avi would be created, named some-movie.hash (if you don't use the unified .hash extension, your file would instead be named some-movie.md5 or some-movie.sha1, depending on the algorithm used).

Right-click a folder, the Create checksums.. option will produce a hash file in that folder, containing checksums for all the files in the folder (and so on, inside any interior folders), named after the folder(s), again, with a .hash extension, e.g. somefolder.hash

Verify checksums..

Click (left-click) a hash file (or right-click and choose Verify this checksum file..), checksum immediately verifies all the hashes (.hash/.md5/.sha1) contained within.

Right-click a folder, the Verify checksums.. option instructs checksum to scan the directory and immediately verify any hash files contained within.

That's about it, and this simple usage is fine for most situation. But occasionally we need more..
 


checksum launch modifiers..

When you launch checksum, you can modify its default behaviour in two important ways.

Image of a <SHIFT> Key, checksum's main modifier key

The first modifier is the <SHIFT> key. Hold it down when checksum launches, and you pop-up the one-shot options dialog, which enables you to change lots of other things about what checksum does next. This works with both create and verify tasks, from explorer menus or drag-and-drop. Here is what the one-shot create dialog looks like..

an image of checksum's one-shot hash creation dialog


In there, as you can see, you can set all sorts of things. Hover over any control to get a Help ToolTip (you might need to repeat that to read the entire tip!). You can also drag files and folders directly onto that dialog, if you want to alter the path setting without typing. Same for the verify options.

The file mask: input is, by default, *.*, which means "All files", "*" being a wildcard, which matches any number of any characters. You can have multiple types, too, separated by commas. For example, if you wanted to hash only PNG files, you would use *.png; if you wanted to hash only text files beginning with "2008", you could use 2008*.txt, and so on.

If you click the drop-down button to the right of the input, you can access your pre-defined file groups, ready-for-use (you can easily add to/edit these in your checksum.ini)..

checksum creation options dialog, file types group drop-down, regular Windows masks apply
NOTE: If you drop a file onto the create options, the path is inserted into the path: input, and though the file mask remains *.*, the file name is also automatically added to the file mask drop-down, just in case you really do wish to only hash a single file.
 
Image of a <Ctrl> Key, checksum's second modifier key

The second modifier is the <Ctrl> key. Hold it down when checksum launches and you force checksum into verify mode, that is to say, no matter what type of file it was, you instruct checksum to treat it as a hash file, and verify it. This works with drag-and-drop too, onto checksum itself, or a shortcut to checksum. checksum's default drag-and-drop action is to create hashes.

Amongst other things, this is useful for verifying folders in portable mode, simply Ctrl+drag-and-drop the folder directly onto checksum (or a shortcut to it), and all its hashes will be immediately verified.
 
 

batch processing..

hashDROP icon (nicked from somewhere, I think!hashDROP
A batch-processing front-end for checksum..

Because checksum can be controlled by command-line switches, it's possible to create all sorts of interesting front-ends for it. The first of these to come to my attention, is a neat wee application called "hashDROP", which enables you to run big batches of jobs through checksum, using a single set of customizable command-line switches.

As developer seVen explains on the hashDROP page..



On seVen's desktop, at least, it looks something like this..

thumbnail image of hashDROP window, create tab
thumbnail image of hashDROP window, verify tab

 
hashDROP has already earned a place in my SendTo menu. Good work, seVen! For more information, documentation, and downloads, visit the hashDROP page.
 

Batch Runner logo/iconBatch Runner
Run multiple programs in a batch..

I originally designed Batch Runner to run a big batch of tests on checksum before release, but it has since proven useful for other tasks, so I spruced it up a bit, made it available.

If you want to run loads of hashing jobs using the same switches, hashDROP is probably more useful to you. But if you want to run lots of checksum jobs with different switches, or as part fo a larger batch of jobs involving other programs, then check out Batch Runner.

Batches can be saved, selected from a drop-down, run from the command-line, even from inside other batches, so it's handy for repetative scheduled tasks, or application test suites, as well as general batch duties. At least on my desktop, it looks like this..

thumbnail image of the Batch Runner window


Automatic Music playlists..

Perhaps checksum's second most common extra usage is making music playlists. After you have ripped an album, you will most likely want a playlist along with your checksums, so why not do both at once? checksum can.

Right-click a folder and SHIFT-Select the checksum option (which pops up the one-shot options dialog), check either the winamp playlists (.m3u) or shoutcast playlists (.pls) option, and then do it now! You're done.

By default, checksum will also recurse (dig) into other folders inside the root (top) folder. Now you've got music playlists that you can click to play the whole album in your media player.

Note that checksum will thoughtfully switch your file masks to your current music group when you select a playlists option, reckoning that you'll probably only want to actually hash the music files, not associated images, info files and such, but it's easy enough to switch it back to *.* (hash all files) if you need that. The rationale behind this being that it's what most people want, so the majority get the simpler, two-click task.

If you do this sort of thing a lot, check out the next section, for how to put this functionality directly into your Explorer context menu, and skip the dialog altogether..
 


Custom Explorer Context Menu Commands made easy..
custom Windows explorer context menu command

On the subject of music files, you may encounter a lot of these, and fancy creating a custom explorer right-click command along the lines of "checksum all music files", or something like that. No problem; you can simply create a new command in the registry, add the "m" switch add your file masks, right?

But what if you change your file masks? Perhaps add a new music file type? Do you have to go and change your registry again? NO! checksum has it covered. Instead of specifying individual file masks, use your group name in the command, e.g. m(music) and checksum applies all the file masks from that group automatically, so your concept command is always up-to-date with your latest preferences.

Here's an example registry command that would do exactly that. Copy and paste into an empty plain text file, save as something.reg, and merge it into your registry. If you installed checksum in a different location, edit the path to checksum before you merge it into the registry (not forgetting to escape all path backslashes - in other words, double them)..

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\01b.checksum music]
@="Checksum &MUSIC files.."

[HKEY_CLASSES_ROOT\Directory\shell\01b.checksum music\command]
@="\"C:\\Program Files\\corz\\checksum\\checksum.exe\" crm(music) \"%1\""
		
NOTE! If you add a "3" to the switches [i.e. make them c3rm(music)] you'll get a media player album playlist files created automatically along with the checksum files. Groovy! Here's one I prepared earlier.

Setting new default Explorer context actions..

You can also change checksum's default  Explorer commands, as well as add new commands, without going anywhere near the registry. Simply edit the installer's setup.ini file, [keys] section. For example, to always bring up the one-shot options dialog when creating checksums on folders and drives, you would add an "o" to those two commands..

HKCR\Directory\shell\01.|name|\command="|InstalledApp|" cor "%1"
HKCR\Drive\shell\01.|name|\command="|InstalledApp|" cor "%1"


Then run checksum's installer (setup.exe), and install/reinstall checksum with the new options. From then on, any time you select the "Create checksums.." Explorer context menu item, you will get the one-shot options dialog. If you would prefer to synchronise hashes under all circumstances, add a y, and so on.
 


Creating checksums "quietly"..

If you want to script or schedule your hashing tasks, you will probably want checksum to run without the funky progress tip, dialogs and so forth. If so, add the Quiet switch.. q

When the q options is used alone, if checksum encounters existing hash files, it continues as if you had clicked "No to All", in the dialog, so no existing files are altered in any way. This is the safest default.

If you would prefer checksum to act as if you had clicked "Yes to all", instead, use q+, and any existing checksums will be overwritten.

If you want synchronisation, add a y switch (it can be anywhere in the switches, so long as it's in there somewhere, but qy is just fine)

Quiet operation also works for verification, failures are logged, as usual. Like most of checksum's command-line switches, these behaviours can be set permanently, in your checksum.ini.
 


Working with Cross-Platform hashes..

checksum has a number of features designed to make your cross-platform, inter-networking life a bit easier.

You don't have to do anything special to verify hash files created on Linux, UNIX, Solaris, Mac, or indeed any other major computing platform; checksum can handle these out-of-the-box.

If you need to create hash files for use on other platform, perhaps with some particular system file verification tool, checksum has a few preferences which might help..

You will perhaps appreciate checksum's plain text ini file (checksum.ini) containing all the permanent preferences. Inside there you can set not only which Line Feeds checksum uses in its files (Windows, UNIX, or Mac), but also enable UTF-8 files, single-file "root" hashing, generic hash file naming, UNIX file paths, and more. Lob checksum.ini into your favourite text editor and have a scroll.
 


checksum in your SendTo menu..

There are a number of ways to run checksum. One handy way, especially if you are running checksum in portable mode without Explorer menus, is to keep a shortcut to checksum in the SendTo menu.

Simply put; any regular file or folder sent to checksum will be immediately hashed. Send a checksum file (.hash, .md5, .sha1, plus whatever UNIX hash files you have set), and it will be immediately verified. If you want extra options, hold down the <SHIFT> key, as usual.

If you want to send a non-checksum file, but have checksum treat it as a checksum file, hold down the <Ctrl> key during launch, to force checksum into verify mode (either just after you activate the SendTo item, or perhaps easier; hold down <SHIFT> AND <Ctrl> together while you click, to bring up the one-shot verify options). This is also handy for verifying folder hashes.

 


How to accurately compare two CDs, DVDs, etc.
(even when they don't have hash files on them)..

When hashing read-only media, obviously we cant store the hash files on the disk itself. However, thanks to checksum's range of intelligent read-only fallback strategies, you can make light work of comparing read-only disks with super-accurate MD5 or SHA1 hashes, even if those disk were burned without  hashes.

All we need to do, is ask checksum to create a "root" hash file of the original disk, using the "Absolute paths" option. This will produce a hash file containing hashes for the entire disk, with full, absolute paths, e.g..

531a3ce6b631bb0048508d872fb1d72f *D:\Sweet.rar
558e40b6996e8a35db668011394cb390 *D:\Backups\Efficient.cab
832e98561d3fe5464b45ce67d4007c11 *D:\Sales Reports\April.zip


There are a few ways to achieve this. For one-off jobs, you can simply add k1 to your usual command-line switches. For example, to create a recursive root hash file of a disk, with absolute paths, you would use crk1.

Another way, is to set (and forget) checksum's fallback_level preference to 2, inside checksum.ini..

fallback_level=2

With fallback_level=2, when checksum is asked to create hashes of a read-only volume, it will fall-back to creating a single "root" hash with absolute paths, inside your fall-back location (also configurable), which is exactly what we need!

Then in the future, to verify the original disk, or copies of the disk; you simply insert it, and click the hash file.

You can store the .hash file anywhere you like; so long as the disk is always at D:\, or whatever drive letter you used to create the .hash file originally, it will continue to function perfectly.

If you want to know more about checksum's read-only fall-back strategies, see here.
 


Or accurately compare a burned disk to its original .iso hashes..

If you have a .hash file of the original .iso file, in theory, a future rip of the disk to ISO format, should produce an .iso file with the exact same checksum as the original. My burner is getting old, but I needed to know, and so tested the theory.

I Torrented an .iso file of a DVD (Linux Distro) - the hashes were published onsite, checksum verified these were correct. I burned the disk to a blank DVD-R, and then deleted the original .iso file. Everything is now on the disk only. The .hash file is still on my desktop.

Then I used the ever-wonderful ImgBurn, to read the DVD to a temporary .iso file on my desktop.

Fortunately, the .iso file, and the original .iso file had the same name, so I didn't need to edit the .hash file in any way. Then the moment of truth. I click the .hash file, and checksum spins into action, verifying. A few seconds later... Beep-Beep! No Errors! It's a perfect match!

I can't speak for other software, but with ImgBurn at least, a burned disk can produce an .iso file with a hash bit-perfectly identical to that of the original .iso file used to create the disk, and can be relied upon for data verification. Good to know.
 


checksum as an installer watcher..

Because checksum can so accurately inform you of changes in files, it can function as an excellent ad-hoc installer watcher. All you do is create a root checksum for the area you would like to watch. Run the installer. And afterwards, verify the checksum. If anything has changed, checksum will let you know about it, with the option to log the list to funky XHTML or plain text.

Similarly, checksum can be utilized in any situation where you need to know about changed files. You can even use it to compare registry files, one exported before, the other after an install or other process. If the hashes match, there's no need to look further.
 


checksum's custom command-line switches..

Click & Go!  is the usual way to operate checksum; but checksum also contains a lot of special functionality, accessed by the use of "switches"; meaningful letter combinations which instruct checksum to alter its operation in some way.

If you have some unusual task to accomplish, the one-shot options dialog enables you to manipulate the most common switches with simple checkbox controls. You can see the current switches in a readout, updating dynamically as you check and uncheck each option. But this output is also an input, where you can manipulate the switches directly, if you wish. If that is the case, you will probably find the following reference useful.

You may also find this section useful if you are constructing a full checksum command-line for some reason, maybe a Batch Runner command or batch script, or custom front-end for checksum, or altering your explorer context menu, or creating a scheduled task, or something else. In each case, switches are placed before the file/folder path, for example; the full command-line to verify a checksum file might look like this..

C:\Program Files\corz\checksum\checksum.exe v C:\path\to\file.hash

Here are all the currently available switches:

c
Create checksums.
 
v
Verify checksums.
 
r
Recurse (only for directories).
 
y
Synchronize (add any new file hashes to existing checksum files).
 
i
Individual hash files (one per file).
 
s
Create SHA1 checksums (default is to create MD5 checksums).
 
u
UPPERECASE hashes (default is lowercase).
 
m
File masks. Put these in brackets after the m. e.g.. m(*.avi,*.rm)
Note: You can use your file groups here, e.g. m(music)
 
e
Add file extensions to checksum file name (for individual file hashes)..
 
1
Create one-file "root" checksums, like Linux CD's often have.
 
3
Create .m3u playlists for all music files encountered (only for folder hashing)..
 
p
Create .pls playlists for all music files encountered (only for folder hashing)..
 
q
Quiet operation, no dialogs (for scripting checksum - see help for other options)..
 
h
Hide checksum files (equivalent to 'attrib +h').
 
o
One-shot Options. Brings up a dialog where you can select extra options for a job.
(to pop up the options at run-time, hold down the <SHIFT> key)
 
b
Beeps. Enable audio alerts (if disabled in your prefs - override it).
 
t
ToolTip. Enable the progress ToolTip windoid (if it is disabled in your prefs - override it).
 
n
No Pause. Normally checksum pauses on completion so you can see the status. This disables it.
(note: you can also set the length of the pause, in your prefs)
 
k
Absolute Paths. Record the absolute path inside the (root) checksum file.
Use this only if you are ABSOLUTELY sure the drive letter isn't going to change in the future..
 
f
Log to a file
(if there are failures, checksum always gives you the option to log them to a file)
 
g
Go to errors.
If a log was created; e.g. there were errors; open the log folder on task completion.
 
l
Log everything.
(the default is to only log failures, if any).
 
a
Only verify these checksum files.
(followed by algorithm letter: am for MD5, as for SHA1 - see example below).
 
 
The 'a', 'f', 'g', 'l', and switches only take effect when verifying hashes.
The '1', '3', 'e', 'h', 'i', 'k', 'm', 'o', 'p', 's', 'u', and 'y' switches only take effect when creating hashes.

In other words..
global switches = b, n, o, q, r, t.
creation switches = 1, 3, c, e, h, i, k, m, p, s, u, y.
verify switches = a, f, g, l, v.

Switches can be combined, like this..
… checksum.exe v "C:\my long path\to\files.md5"
[ note 'long' path (with spaces) enclosed in "quotes" ]
 
… checksum.exe crim(movies) c:\downloads
[ create individual checksums for all my movie files - note use of group name ]
 
… checksum.exe vas c:\archives
[ check all *.sha1 files in the path, not *.md5 files ]
 
… checksum.exe c3rm(music) p:\audio
[ recursive music file checksum creation, with automatic playlists ]
 
… checksum.exe cr1m(*.zip) d:\
[ create a "root" checksum for all zip files on drive D: ]
 
 

notes:

And remember, if there's some specific behaviour that you want set permanently, you can do that, and a lot more, inside checksum.ini..
 


checksum.ini
working with checksum's UNIX-style preference file..

checksum has a lot of available options. Here is a page that will help you get the most out of them.
 
image of checksum icon/logo, in super-large 256 pixel size PNG!


I do requests!

If there's something you would like to accomplish with checksum, but don't know how; feel free to demand an answer, below..
 
 
 
cbparser powered comments..

previous comments (two pages)   show all comments

cantuninstall - 26.06.10 1:53 am

I am unable to uninstall checksum. When I attempt it via the uninstall option in PROGRAMS, it brings up a text file. Checksum does not show up in Windows ADD-REMOVE SOFTWARE.

It sounds like you have either deleted the checksum install directory (inside shared user app data folder) or checksum's installer registry entries. Simply re-install checksum, and then uninstall again right away.

Or else, simply delete the checksum program folder and user prefs folder, job done. Aside from the data mentioned above, there's nothing else left on your system. ;o) Cor



David - 16.08.10 1:44 pm

Is there a way run this on a folder (recursively), and then have the changed sub-folders and files logged before the new checksum is written?

For technical reasons, the log is currently written only at the very end of checksum's entire task. ;o) Cor



CELLIBI - 02.11.10 4:52 am

i am a student and wishes to learn more about hashes and the encrytption decryption processes. consider me just as a beginner.
is that possible to find out the serials of small light weight programs using brute force? is there any programs concerned to it? i have a program called ophcrack, but doesnt know how to use it.
are hases concerned to it any way?
and pls do tell me how to make a torrent file if i have a whole movie file myselves.
thanks in advance.
pls reply .



Dave - 05.11.10 4:46 pm

Great checksum! I was wondering is there a way to make the root file automatically go to the fallback location, and not the directory being scanned. (when the folder is not read-me). I want to run the checksum on some folders which I can right on the network, but not alter, or add to them in anyway.

checksum already does this automatically. And if yours doesn't, file a bug! Include lots of error dialog screenshots, logs, that sort of thing.


If you had a command that could change the root destination that wold be awesome!

With checksum's dazzling array of features, the ability to choose the output dir of the hash file at-will does seem like something of an omission. One that doesn't go unmentioned, either. It's on the 2do list. ;o) Cor



Dennis - 19.11.10 12:07 pm

I second Dave's proposal, and also be able to run verify on a read-only directory with a different hash location but without needing a hash with absolute paths.

Checksum already verifies read-only directories just fine with all the usual settings. Even if the hash file itself is many levels above (and technically, below) the directory in question, or in it. checsum just does it.

If you are referring to files on an entirely different volume (DVD, etc.), then how will checksum know where the files are without the absolute paths stored in the hash file? ;o) Cor



kami - 07.12.10 10:20 am

I love your Programm and I am happy to have found it. But there are a few Questions and Options a would like.

1. Working a directory tree recursively, Is there a way to create individual checksums for each file and at the same time another in the root folder (cr1 and cri combined)? So when I need the two options I don't have to run the task twice.

Not currently. You might want to take a look at Batch Runner.


2. Doubble Clicking a file in Windows Explorer which file extension has no assigned programm runs checksum, is this indended or is it ab bug? How can I switch it of?

This is most likely because checksum has the topmost position in your Explorer menu and Windows gets confused sometimes, especially in low memory situations.


3. The version history shows 1.1.6b as latest version, where can I download it?

You cannot. My initially confusing versioning system is explained elsewhere. NOTE: Licensed users can play with betas on request.


4. I read, that you consider checksum "only" to create and check hashes, but couldn't you implement an comparison funktion. E.g. creating a hash and open an inputbox where to paste a second hash and compare the two hashes? Or klicking a hash file like for checking it, but than opening an inputbox where to paste a second hash and compare them?
Or do you a Programm that could just that?

Clearly you missed all the blurb for Simple Checksum, which comes with checksum. Give it a whirl!


5. I would love a more sophisticated Synchronize funktion. With options to remove the hashes of deleted files to clean the checksum files and to recheck files which have been changed since the last synchronization. It might be done by either storing filesizes and date in the checksumfile or by using the archive bit, resetting it after checking a file. Then checking a file again in case the archive bit is set again.

It might be done by... has been the start of many a thought train along these lines. More thought will go in yet, much more, before anything comes out the other end.


But anyway checksum is the best Programm I found for checksums. Thank you very much!

I agree! Thank You! ;o) Cor



Nate - 29.12.10 3:13 am

3 DVD burners, 3 copies of the same image, no existing files on hdd, but want to confirm all three DVDs are identical. I assume checksum/hash, but I'm new to this, so if you could give me some pointers. What would be the best, accurate, and fastest way to go about it smiley for :D

There's a section on this on the FAQ page! So, Yes, checksum can certainly help you here.


Well for more information, there are 9 dvd burners, running through different SCSIs, but some comp (but are all assigned drive letters), but only 3 copies of each image, so the ultimate goal would be able to run 3 different checks on 3 hopefully identical images all at once with the 9 drives (unless it goes really fast, have no clue how long each check takes on a full dvd). Unforcinally the DVD burner software/device I use don't have any verifying options :( so i assume this is the way to go, and possibly to run 3 of the same program, to verify the 3 DVDs each. Any help at all would be greatly appreciated smiley for :D tyvm for your time smiley for :D

Yes, you can run the checksum verify tasks all at once, no problem. You could also create one checksum file to verify them all in one pre-arranged sequence. Have fun! ;o) Cor



archivist - 15.02.11 12:41 pm

Hi corz.

First and foremost, thank you for the very, very, very fast checksum-tool. I have one feature-request though:

The ability to verify a checksum-file with relative paths against the relevant folder, where-ever that folder might be situated. More verbosely, I would like to situate my hash-files in a separate folder from the hashed files, so that I can move those files around and still be able to verify them without having to move the hash-files around as well. Thanks!

/archivist

Check your switches already! (hint: the "k" switch is what you are after.. "Absolute Paths") ;o) Cor



Ver Radam - 24.03.11 9:13 am

I found your site interesting but still not clear to me what i have read. I will visit again soon if i have time.
The thing really interesting to me about the use of checksum. Maybe it just difficul to understand.
i come back soon in your site.
Godspeed...


ben - 14.02.12 7:08 am

Hi,

Realising this is probably due to deficient thinking, I can't seem to find where the logs being written. I thought it would be with my checksum.ini file, but there is nothing there and a system-wide search for log (or html) files doesn't show any that are obviously (as in written in the past day or so) belonging to checksum.

The command I'm using is:
""c:\Program Files\corz\checksum\checksum.exe" cils d:\"

My understanding was that cils would create a sha1 hash for each file and log it. d: is a writable drive.

Only checksum.ini is at %userprofile%\AppData\Roaming\corz\checksum\ nor is there a directory at %userprofile%\log\, %appdata%\log. Can't think of other places it would be hidden.

I've been through checksum.ini and other pages on this site but for the slow-witted it doesn't seem that file locations are that apparent.


P.S. Realising is British spelling, not at all improbable.


The first place you looked was valid enough, the trouble is that logging is only for verification. See the switches section, above. By the way, iff you think about it, the .hash file itself is a log of the creation operation, unless nothing was done, there will always be one of those.

During verification, if any logs are created checksum will, by default, open that folder for you at the end of the operation, no need to search.

;o) Cor

ps. "realize" and "realise" are both valid here in Scotland. smiley for ;)



ben - 14.02.12 11:14 pm

Thanks for your reply.

Ah right. I missed the switches that are only activated on verification. So, the 'l' switch isn't for logging everything? smiley for :erm: Just logging every verification.smiley for :ehh: No way of combining them into a single task?

No, the "l" switch is for logging "Everything", as opposed to logging only failures. But logging is only appropriate during verification.


I guess it shall still suit my purposes, with verification. The intention is to emulate end to end filesystem checksum; a poor man's ZFS checksumming if you like. Though I would like to know every time the checksum is created, and how many times previously checksums had been created. Kinda an anti-tamper process except it is about data corruption rather than security.

I don't get what value there is in knowing when and how often checksum's were created. All that matters is whether they still match the files they represent. Isn't it?


All said and done, this software is awesome, and you can count on a donation and promotion.

Thanks. I look forward to that.


In the checksum.ini file, I love how verbose you are in explaining what you are intending with each item. Unfortunately most of the explanations go over my head.

Maybe you just read them too quickly! Seriously though, if there's any in particular you find confusing, let me know and I'll take a look.


P.S. Okay, why did your website tell me 'realise' is an "improbable" word? smiley for :D

Ahh.. my spell-checker! I guess "realising" isn't in its word list (though "realise" definitely is), and as I generally use the "z" variants myself, it hasn't yet been added. "donation" isn't in the list, either! ;o) Cor



fred - 27.02.12 3:27 pm

This has got to be the most comprehensive MD5 hasher I've found which meets 95% of my needs.

I've a couple of questions which I'm not completely clear about
1) when i synchronize, will deleted files be updated into the .hash? and will changed files be updated into the .hash as well?

During synchronization, checksum will only add new files to an existing .hash file. Nothing is taken away.


2) will it be possible to create a .hash in each folder recursively. i can foresee the need to move subfolders and i would want to check the integrity. yet i don't have to create a .hash at each folder manually.

for example, this is my folder structure... which i've hashed at E: level.

e:\photos
e:\photos\2010
e:\photos\2010\jan...
e:\photos\2011
e:\photos\2011\jan...

e:\videos
e:\videos\english
e:\videos\french...

e:\stuff
e:\stuff\i like
e:\stuff\i hate...

This is the default behaviour.


and i want to copy all the photos in e:\photos\2011 for my friend. i would now need to rehash at that level again. am i making any sense?

thanks!

You would need to do nothing, simply copy/zip/send/whatever the folder. Its .hash file will travel with it (along with all the .hash files in all the folders inside it, and so on). ;o) Cor



David - 05.03.12 4:17 am

Hi Cor,
Firstly let me say fantastic program. You have managed to include many features but still kept it useable!

I am just using checksum from a scheduled script to verify my backup files are still good after they are transferred over a WAN connection. My backup program actually generates the MD5 hashes internally.

So far everything is working fine except I have around 400GB in total of files to check. What I really want to do is check just the few hundred MB of updated files after they arrive at the destination and go over the whole set of files once a month or so.

Can I selectively verify the hashes directly in checksum bussed on the archive bit on the files? Once the check is passed I could then reset the archive bit.

If it can't be done directly in checksum can checksum selectively verify files based on an input file list? I shouldn’t have to much trouble automatically generating the input file based on files with the archive bit set and then using the same input file to reset the bit once the test has successfully completed.

This is the command line I’m currently using and I have made some tweaks to the ini file for the stuff I couldn’t do on the command line.

checksum.exe" vflrq-t %target%\ >> %logfile% 2>&1

Love to hear your Ideas on solving this problem.

Thanks

You ask..

can checksum selectively verify files based on an input file list

Yes! It's called a .hash file!

You have to understand, during verification checksum isn't rummaging through your filesystem checking archive bits or anything else, it is reading the .hash file (or .md5 or whatever) that you feed it. If you feed it a system path, checksum scans for all available .hash files. Once checksum has its .hash file(s), it simply checks all the files listed within.

If your backup software if producing hashes, it may be possible for it to pipe the new hashes to a single file, even a temporary file, which checksum could work with.

But really, 400GB isn't so much. If you set all this to happen when you are in bed, you won't even notice it has, unless there are errors (checksum will (optionally) pop open the log folder).

;o) Cor

ps. be careful with the "l" switch, it can produce HUGE logs.



Jan - 12.03.12 5:10 am

Hi Cor
Thank you for a very useful program. It really is a must-have on any computer. I have been using it for checking copies of folders made for archival purpose, works perfectly.
One problem I do have, if you can suggest a solution. I inadvertently did individual checksums instead of "root" on a number of folders containing large amounts of photo-files, ending up with hash-files on every photo. How can I remove the hash-files instead of only hiding them?
Thank you.

Use standard Windows Explorer commands.. Search [F3] for "*.hash", select all ([Ctrl+A]) and delete [Del].

If you view the results by "details", you can order by date, size, etc., makes it easy to delete only the ones you want gone.

;o) Cor



Francisco - 23.03.12 6:57 pm

Hi Cor
First I wanna thank you for your program is really unique!, also I have a problem, I have bunch of files on a drive and I have already checksumed them but I have to re check them with my girlfriend and I am sure that we will delete some of them, so what can I do to re synchronize everything? I know about the syncronize switch but when a file is deleted it just shows sha 1 missing, I wanna delete all the hashes of the deleted files to avoid the "sha 1 missing" errors.

If checksum could automatically handle this scenario, it would verify the hashes of all the files then (optionally) present the user with a list if missing files. Of course, it already does all this, as well as offering to log all those missing files for you.

If you were 100% certain that all the missing files were intentionally missing, you could have checksum go straight to manipulating the existing .hash file(s), removing entries for your "approved" missing files.

checksum does most of this already, right up to the point where the existing .hash files are altered/replaced. Something along these lines is planned for a future version.

If you use a "root" .hash file and you are handy with some form of scripting language, I'm sure it wouldn't be too difficult to create a script that parsed checksum's log (searching for "MISSING") removing those entries. Of course, you would need to instruct checksum to output plain text logs (XHTML logging is the default).

With a "root" .hash file it's also a trivial operation in your text editor, with a little regex magic, of course.

Failing that, the easiest way to approach this currently is to:
  • Run a verify operation on the entire folder structure (i.e. drive)
  • Check (in the log) that all the errors are "expected". If not, fix any issues (from backups, etc)
  • Delete all .hash files on volume. (see my previous post here)
  • Re-create hashes for the entire volume.

Now you have up-to-date, error-free hashes for the entire volume. If the volume is large, do the last part when you are sleeping.

While I'm here I should mention that the upcoming beta of checksum, as well as enabling you to differentiate between CORRUPT and CHANGED files, has the ability to toggle the reporting and logging for these and MISSING files, you can simply ignore them!


Also i have another problem when I verify the checksums, I get that error of "cannot create hashes even on the fallback directory" something like that I have read your site and it says that maybe is because my drive is read only but that is not the case.

Thanks in advance! smiley for :)

I have seen this error when the fall-back folder has "unusual" permissions (check those) or where the fall-back path is so deep that re-creating folder structures would lead to file paths longer than Windows allows (move it somewhere closer to the root), or use root hashing (one file).

But it may be something else. Try re-installing checksum and moving/removing any checksum-created fall-back folders. The installer is completely non-destructive, so it won't affect your settings.

If you are still having issues, mail me with rough details of your computer setup and a copy of your checksum configuration (ini) file, I'll look into it.

;o) Cor



Francisco - 24.03.12 2:49 am

Thanks Cor for the quick reply and easy solutions, for my first problem I did what you told me I verified all, then deleted the hashes.

And for my second problem, it was because the files where very deep in the drive (folders and folders and folders...) and maybe because it was a web page saved, so I deleted that and I have just created a root hash.

So Thanks for your help again and for your great software!


Ricard - 11.04.12 6:51 pm

Hi,

Trying to modify options with Shift and Ctrl keys before launching but all I get is a help page. Help needed.

Are you saying that when you hold a) <SHIFT> or b) <Ctrl> during launch you get a help page instead of the a) options dialog and b) force verify controls? Seriously? Nah, I misunderstand you, surely.


I want to compare a set of folders to see if all the files are in place and, after that, to verify the integrity of the files. How should I proceed to achieve the result?

Thanks in advance. Congratulations for the soft. Regards.

Simply hash the original folder (use a root .hash file) and then copy that .hash file to the second folder, click it. ;o) Cor



Ricard - 12.04.12 4:25 pm

Hi,

"Are you saying that when you hold a) <SHIFT> or b) <Ctrl> during launch you get a help page instead of the a) options dialog and b) force verify controls? Seriously? Nah, I misunderstand you, surely."


No, you did not misunderstand. That's exactly what happens. I am in Windows 7 64 bits. But it is not a helo page exactly, is a dialog that begins with " checksum [v1.2.3.9] was given nothing to do!"

Thanks in advance. Regards.

The only possible explanation I can think of is that you are tapping the key, instead of holding it down. If you are holding it down (until you SEE checksum) then I have no idea what the problem could be. It's a first!

And of course, there's no point just launching checksum (unless you want to read the "checksum was given nothing to do" dialog), you need to launch it with something to do (i.e. from your Explorer context menu for a file/folder, drag & drop, etc.)

;o) Cor



Hi Cor.

I have some files that I have previously checksumed that I know have changed (and know change a lot) but I want to re-checksum it prior to backing up to another drive so I can verify the checksum on the backup to make sure it has copied ok, and the backup is still good in the future.

I thought I could just run checksum with "qctry" but it doesn't seem to update the hash file if it already exists? I know synchonrise would add new files, but doesn't update existing hashes (which is entirely sensible, you generally wouldn't want to update the checksum to include any possible file errors!).

The only way I can get the behaviour I want is to delete the hash files and re-checksum, which is fine I guess - just wondered if there was a way to force checksum to regenerate the hashes itself?

Thanks in advance.

During verification, checksum makes no changes to your .hash files.

The best way to go about this would be, as you suggest, to verify the existing hashes, then ensure the error log contains only files you expected to be changed, then hash again (overwriting existing hashes).

If it's something you do a lot, because checksum can be controlled by the command-line, it should be easy enough to setup a wee batch script/batch runner set. ;o) Cor



Draguen - 11.05.12 9:49 am

I got two different files in a folder with the same hash. Only one file gets written to the hash file. I would love to get a switch (I use command-line) to hash and list all files, even if they have the same hash. If the second file isn't written, you might never know if it gets corrupted.
BTW - Great App!

That is not the expected behaviour. Regardless of the hash, checksum should list ALL the files, unless they are ignored for some reason (i.e. in your preferences).

Please mail me full details, including the full names of all the files in the dir, what command-line you are using, and the resultant .hash file. If you can, zip and send the entire dir to me.

;o) Cor



Draguen - 11.05.12 7:16 pm

Right you are, the file "folder.jpg" is by default ignored in the prefs. Sorry for the trouble.... I found this after sending the zipped folder... so you can ignore the email. Thanks a lot.

No problem! I suspected it might be something along these lines. I'm glad you have your solution. ;o) Cor



 

Leave a comment, become part of this site!


First, confirm that you are human by entering the code you see..

(if you find it difficult to read, refresh the page for a new code)


gd verification image

 
 

Drown out the noise!image for LoopDropZ

 
 
Machine Translations
Simplified Chinese translation of this page Deutsch translation of this page French translation of this page German translation of this page Italian translation of this page Japanese translation of this page Korean translation of this page Portuguese translation of this page Polish translation of this page Spanish translation of this page World translation of this page
 
NOTE: This Will Mangle Technical Output (e.g. scripts).
 
Bitcoin logo 16px  Get FREE Bitcoins, every day!
Site Tools