# checksum a point-and-click sha1 and md5 hashing application for windows..

## After years searching for the perfect Windows file verification utility, I decided to write it!

Welcome to checksum, a blisteringly fast, no-nonsense file hashing application for Windows. checksum is a program that generates and verifies SHA1 and MD5 hashes; aka. "MD5 Sums", or "digital fingerprints"; of a file, a folder, or recursively, even through an entire hard drive, does it very quickly, intelligently, and without fuss. I think it's the best checksum utility on planet Earth, of course.

Normally I would put a cute image of the program here, but generally speaking, you don't see checksum running, it just gets on with the job. However, checksum does - optionally - pop up a cute progress ToolTip windoid, so I'll show you that instead..

### Why?

In the decade before checksum, I must have installed and uninstalled dozens, perhaps hundreds of Windows MD5 hashing utilities, and overwhelmingly they leave me muttering "brain-dead POS!" under my breath, or words to that effect, or not under my breath. I always knew that data verification should be simple, even easy, but it invariably ended up a chore.

Either the brain-dead programs don't know how to recurse, or don't even pretend to, or they give the MD5 hash files daft, generic names, or they can't handle long file names, or foreign file names, or multiple files, or they run in MS DOS, or choke on UTF-8, or are painfully slow, or insist on presenting me with a complex interface, or don't have any decent hashing algorithms, or don't know how to synchronize new files with old, or any combination of these things; I usually end up shouting "FUXAKE! JUST DO IT WILL YA!!!".

No more!  Now I have checksum, and it suffers from none of these problems; as well as adding a few tricks of its own..

### What is it for, exactly?

Peace of mind! SHA1 and MD5 hashes are used to verify that a file or group of files has not changed. Simple as that. This is useful, even crucial, in all kinds of situations where data integrity is important. For instance, these days, it's not uncommon to find MD5 hashes (and less rarely now, SHA1 hashes) published alongside downloads, even Windows downloads. This hash, when used, ensures that the file you downloaded is exactly the same file the author uploaded, and hasn't been tampered with in any way, trojan added, etc.; even the slightest change in the data produces a wildly different hash.

It's also very useful if you want to compare files and folders/directories; using checksums is far more accurate than simply comparing file sizes, dates or any other property. For quick file compare tasks, there's also checksum's little brother; simple checksum, simply drag & drop Two files for an instant hash-accurate comparison.

If you burn a lot of data to CD or DVD, you can use a hash checker to accurately verify the integrity of your data right after a burn, and at any time in the future. If you distribute data in any way, maybe torrenteering your favourite things, run a file server of some kind, or just email a few files to your friends; checksums enables the person at the other end to be absolutley sure that the file arrived perfectly, 100% intact.

As well as providing secure verification against tampering, virus infection, file (and backup file) corruption, transfer errors and more, digital fingerprints can serve as an "early warning" of possible media failures, be they optical or magnetic. It was a checksum failure that recently alerted me to a failing batch of DVD-R disks; I saved my fading data in time, and got a refund on the disks. I'll leave you to consider the million other uses. There's only one reason, though; peace of mind.

### Absolutely no-nonsense file verification..

checksum can create (two clicks, or a drag-and-drop) or verify (one click) both SHA1 and MD5 hashes of a file, a folder, even a whole disk full of files and folders in one simple, no-nonsense, high-performance operation. Basically, you point it at a file or folder and go! The parameters are controlled by command-line switches, but most folk won't have to worry about that; it all happens invisibly, and is built-in to your Windows® Explorer context (aka "concept", aka "right-click") commands (see above).

Note: while checksum operates with command-line switches, it is NOT a Windows® console application; there's no messy DOS box, or anything like that. But if you want to run it from a console, that's covered, too.

There are a wealth of command-line options, but most people find that checksum just works exactly as they would expect, without any messing about; right-click and go!  But, if you are the sort who likes to customize and hack at things, you will find plenty to keep you occupied!

### On-the-fly configuration..

If you want to change any of checksum's options on-the-fly, simply hold down the SHIFT key when you select its Explorer context menu item, and checksum will pop up a dialog for you to tweak the process. If you want to have anything permanently set, checksum comes with standard plain text Windows ini file for you to tweak to your heart's content. Anyone smart enough to use MD5sums, can edit plain text.

The options dialog is most useful when you want to only hash certain files in a folder, like mp3's, or movies. With your file mask groups, you can configure file-type specific hashing with just a couple of clicks.

Common music, video, and archive formats come setup and ready to go, and you can easily edit or add to these at any time.

You pop up the options by holding down the SHIFT key when you select the explorer menu item, so it's easy to get to the advanced options whenever you need them. Same goes for verification, though generally you won't need it - checksum is smart enough to just get on with the job, verifying whatever checksum files it finds in the path, be they MD5 or SHA1, or both, and you'll probably never need to use anything but the default verify command, nomatter how advanced you are! And because checksum recognizes other formats of MD5 and SHA1 files, it can be used not only to verify and create new checksums, but also verify existing checksum files, even ancient ones, automatically.

I expect there is some weird MD5 file format out there that I don't have an example of, Wang, maybe? but in practice, checksum supports ALL known MD5 verification file formats, that is, known by me. If you find an MD5 file format that checksum doesn't support, send it to me!

There isn't really a standard SHA1 format yet, but checksum's is pretty good (it's the same as the output from a *NIX sha1sum command in binary mode). Shall we?

## 100% Portable..

checksum usually operates as a regular installed desktop application with Explorer context menus, custom .hash, .md5 and .sha1 desktop icons, Windows start menu entries, and so on; but checksum can also operate in a completely portable state, and happily works from a pen-drive, DVD, or wherever you happen to be; no less than total portability.

Even with its little brother, simple checksum tagging along, the whole lot fits easily on a floppy disk (remember those?) or pen-drive, enabling you to create SHA1 and MD5 hashes, wherever you are. To activate portable mode, simply drop a checksum.ini file next to checksum.exe, you're done.

It's no problem to run checksum both ways simultaneously, or to run checksum in portable mode on a desktop where checksum is already installed. Simply put, if there's a checksum.ini next to it, checksum will use it, and if there isn't an ini there, checksum uses the one in your user data folder (aka. "Application Data", aka. "AppData").

If you like applications to run in a portable state, even on your own desktop, no problem; you can skip the installer altogether and simply extract files.zip to wherever you like. It's in the installer's files/ directory. There's also a checksum.ini inside the archive, so you can unzip-and-go.

Note: Regardless of whether you install or run checksum portably, its functionality is identical.

### Introducing.. The Unified Hash Extension™And Multi-Hashing™..

checksum uses the MD5 and SHA1 hashing algorithms, and creates .md5 and .sha1 files to contain these hashes. But checksum prefers to instead create a single .hash extension for all your hash files, whatever algorithm you use. Welcome to the unified .hash extension..

I feel there are quite enough file extensions to deal with, and with some effort on the part of software developers, this may catch on. I hope it does, anyway, and that you agree. A single, unified hash extension looks like the way forward, to me. All comments welcome, below.

As well as being able to verify both MD5 and SHA1 hashes, even mixed up in the same file, checksum can also create such a file, if you so desire. At any rate, if you start using SHA1 hashes some day, you can keep your old MD5s handy, inside your .hash files..

The single, unified hash extension gives us not only the freedom to effortlessly upgrade algorithms at any time, without having to handle yet-another-file-type, but also the ability to easily store output from multiple hashing algorithms inside a single .hash file. Welcome to multi-hashing, which will doubtless have security benefits, to boot.

### Fast, bloody fast..

If you do a lot of SHA1 or MD5 hashing, you'll know that it's an intensive process, and relatively slow. Well, checksum is fast, very fast.

Even on my old desktop (a lowly 1.3GHz, where checksum was initially developed) it would rip through a 100MB file in under one second. Hashing your average album is instantaneous. With right-click convenience, intelligent recursion and synchronization, full automization, and crazy-fast hashing speeds, digital fingerprinting is no longer a chore; it's a joy!

Okay, I'm getting carried away, but seriously, this is how hashing was always meant to be.

## Features..

If you like lists, and who doesn't, here's a list of checksum's "features", as compared to your average md5 utility..

#### True point-and-click hash creation and verification.

No-brainer hash creation and verification. In a word; simple.

#### Choice of MD5 or SHA1 hashing algorithms.

Create a regular MD5sum (128-bit), or further increase security by using the SHA1 algorithm (160-bit). checksum recognizes and works with both formats, even mixed up in the same file.

#### hash single files, or folders/directories full of files.. no problem.

checksum can create hash files for individual files or folders full of files, and importantly, automatically recognizes both kinds during verification, verifying every kind of checksum file it can find. Also, when creating individual hash files, checksum is smart enough to skip any that already exist.

#### Effortless recursion. (point at a folder/directory or volume and GO!)

Not only fully automatic creation and verification of files, and folders full of files, but hash all the files and folders inside, and all the folders inside them, and so on, and so on, through an entire volume, if you desire..  one click! ... Drive hashing is now officially EASY!

#### Multiple user-defined file mask groups.

For instance, hash only MP3 files, or only movies, whatever you like, available from a handy drop-down menu. All your favourite file types can be stored in custom groups for easy-peezy file-type-specific hashing. e.g..

music=*.mp3,*.wav,*.ogg,*.flac,*.ape,*.shn,*.mpc,*.mp2

The most common groups are already provided, and it's trivial to create your own. You can also enter custom masks directly into the one-shot options, e.g. reports-*.pdf, to hash all the reports in a folder, create ad-hoc groups, or whatever.

#### Automatic music playlist creation!

Another killer feature; checksum can create music playlist files along with your checksums! When creating a folder hash, if checksum encounters any of the music files you have specified in your preferences; mp3's, ogg files, wma, whatever; it can create a playlist for the collection (i.e.. the album). Rather nifty, and a perfect addition to the custom command in the tips and tricks section.

As well as regular Windows standard .m3u playlist files (Winamp, etc.), checksum also supports .pls playlists (shoutcast/icecast). Your call.

#### Effortlessly handles all known** legacy md5 files.

If you discover an MD5sum that checksum doesn't support, send me that file!

#### Create lowercase or UPPERCASE checksums at will.

Like many things, this can also be set permanently, if you so wish.

#### Automatic synchronization of old and new files

Automatically add new hashes to existing checksum files.
That's right! Automatically add new hashes to existing checksum files!

#### Integrated Windows® Explorer context (right-click) operation.

The installer will setup Windows® Explorer context commands for all files and folders, so you can right-click anything and create or verify checksums at will. Very handy. "setup", the rather clever installer, is also available in its own right, as a free, and 100% ini-driven installer engine for your own goodies. Stuffed with features, easy to use, and definitely deserving a page to itself. Soon.

As explained above, you can also bypass the installer altogether, and simply unzip-and-go, for 100% portable checksumming. Or you can have both.

#### No-fuss intelligent checksum verification.

Cut and paste your own checksum files if you like, rename them, mix and match legacy md5 formats in a single file, even throw in a few sha1 hashes just for fun; worry not; checksum will work it out!

#### Can be configured to permanently ignore any file types.

Obviously we don't want checksums files of checksum files, for starters, but if you have other file types you'd like on a permanent ignore, desktop.ini files, thumbs.db, whatever; it's easy to setup. The most common annoying file types already are.

#### Real-time tool-tip style dynamic progress update.

Drag it around the screen - it snaps to the edges, and stays there (checksum also remembers its dialog screen positions, for intuitive, fast operation).

Tool-tip progress can be disabled altogether, if you wish.

Right-click the Tooltip for extra options.

During verification, any failures can be seen real-time in a system tray tool-tip, hover your mouse over the tray icon for details. checksum also flashes the progress tooltip red momentarily, and (optionally) beeps your PC speaker, to let you know of any hash failures. If there were errors, the final tooltip is red (by default). Anything to make life a bit easier.

#### Verify a mix of multiple (and nested) md5 and sha1 checksum files with a single command.

Does what it says on the can!

#### Extensionless checksum files.

Traditionally, individual checksum files are named filename.ext.md5. Personally, I find this inelegant, and prefer them to be named filename.md5. I like it so much, I made it the default, but you can change that, if you like. When running extensionless; if checksum encounters multiple files with same name, it simply adds them to the same checksum file, so checksums for foo.txt, foo.htm, and foo.jpg would all go inside foo.md5, or better yet, foo.hash. Highly groovy.

On the verify side of things, checksum has always verified every possible checksum it can find, so these multi-hash file look just like regular folder hash files, and verify perfectly, so long as the data hasn't changed, of course!

#### Smart checksum file naming, with dynamic @tokens.

checksum file names reflect the actual files or folders checked! Automatically.

If you want more, you can specify either static or dynamic checksum file names, with a wide range of automagically transforming tokens. See below for details.

#### Effortless hashing of read-only volumes.

checksum can create sha1 and md5 hashes for the read-only volume, but store the checksum files elsewhere; either with relative paths inside; so you can later copy the checksum file into other copies of the volume, or absolute paths; so you can keep tabs on the originals from anywhere.

checksum currently has three different read-only fallback strategies to choose from; use whichever most suits your needs.

#### Extensive logging capabilities, with intelligent log handling and dynamic log naming.

checksum always gives you the option to log failures. But you can log everything if you prefer. hashing times can be included in the logs, and proper css classes ensure you can tell what's-what at a glance.

Relative or absolute log file path locations can be configured in your preferences, as can the checksum log name itself; with dynamic date and time, as well as dynamic location and status tokens, so you can customize the output naming format to your exact requirements.

In other words, as well leaving it to checksum to work out automatically, or typing a regular name into your prefs, such as "checksum.log", you can use cool @tokens to insert the current..
@sec   ...   seconds value. from 00 to 59
@min   ...   minutes value. from 00 to 59
@hour   ...   hours value, in 24-hour format. from 00 to 23
@mday   ...   numeric day of month. from 01 to 31
@mon   ...   numeric month. from 01 to 12
@year   ...   four-digit year
@wday   ...   numeric day of week. from 1 to 7 which corresponds to Sunday through Saturday.
@yday   ...   numeric day of year. from 1 to 366 (or 365 if not a leap year)

There is also a special token: @item which is transformed into the name of the file or folder being checked, and @status, which automatically transforms into the current success/failure status.
You can mix these up with regular strings, like so..

log_name=[@year-@mon-@mday @ @hour.@min.@sec] checksums for @item [@status!].log

The @status strings can also be individually configured in your prefs, if you wish. Roll the whole thing up, and with the settings above, the final log name might look like..

[2007-11-11 @ 16.43.50] checksums for golden boy [100% AOK!].log

#### HTML logging with log append and auto log-rotation

As well as good old plain text, checksum can output logs in lovely XHTML, with CSS used for all style and positional elements. With the ability to append new logs to old, and auto-transforming tokens, you setup automatic daily/monthly/whatever log rotation by doing no more than choosing the correct name. You can even have your logs organized by section and date, all automatically; via the free-energy from your @tokens.

### Click here to see a sample of checksum's log output, amongst other things.

#### Total cross-platform and legacy md5 file format support

MD5 and SHA1 hash files from UNIX, Linux, Mac and Solaris, as well as a myriad of legacy Windows and DOS MD5 formats, in fact, every hash file I've ever come across, is supported. Throw any old MD5sum at checksum, and you'll get results. And if you don't (*gasp*), Send Me That FILE!

#### Work with hidden checksums.

If you don't like to see those checksum files, no problem; checksum can create and verify hidden checksum files as easily as visible ones. Like most options, as well as on-the-fly configuration via the options dialog (hold down SHIFT when you launch checksum), you can set this permanently by altering checksum.ini.

To create hidden checksums (same as attrib +h), use "h" on the command-line, or choose that option from the options dialog.

Don't worry about creating music playlists with the invisible option enabled, the playlists will be perfectly visible, only the checksums get hidden! (well, someone asked! ;o)

#### "Quiet" operation.

Handy if you are making scheduled items, etc, and want to disable all the dialogs. Simply add a 'q'.

You can also set checksum to only pop up dialogs for "long operations". Just how long constitutes a long operation, is of course, up to you. The default is 0, so you get "SUCCESS!", even if it only took a millisecond. Check your ini for more wee tricks like this.

Unrelated to the "quiet" option (above), checksum can thoughtfully invoke your peecee speaker to notify you of any verification failures as they happen, as well as shorter double-pips on completion. You can even specify the exact KHz value for the beeps, whatever suits you best.

You can also assign WAV files for the success and failure sounds, if you prefer.

#### Drag-and-drop files, folders and drives onto checksum.

If you prefer to drag and drop things, you can keep checksum (or a shortcut to it) handy on your desktop/toolbars/sendto menu, and drag files or folders onto it for instant checksum creation. This works for verification, too; if you drag a hash file onto checksum, its hashes are instantly verified.

Note: like regular menu activation, you can use the SHIFT key to pop-up the options dialog at launch-time. You can also drag and drop files and folders onto the one-shot options dialogs, to have their paths automatically inserted for you.

#### User preferences are stored in a plain text Windows® ini file.

You can look at it, edit it, back it up, script with it, and handle it. Lots of things can be tweaked and set from here, though 99.36% of people will probably find the defaults are just fine, and the one-shot option dialogs handle everything else they could ever need. But if you are a more advanced user, with special requirements, chances are checksum has a setting just for you. Click here to find out more about checksum.ini

#### Comprehensive set of command-line switches.

Normally with checksum, you simply click-and-go; but checksum also accepts a large number of command-line switches. If you are creating a custom front-end, modifying your explorer context menu commands, or creating a custom scheduled task, take a look at checksum's many switches. For lots more details, see here.

If you simply have some special task to perform, it can probably be achieved via the one-shot options dialog.

## Legacy and cross-platform MD5/SHA1 file formats that checksum can handle..

If you look inside any MD5/SHA1 checksum file - it's plain text - you find all sorts of things.
Here's what a regular (MD5) checksum file looks like..

01805fe7528f0d98c595ba97b798717a *01 - Stygian Vista (radio controlled).mp3

Each line begins with the MD5/SHA1 digest (hash), followed by a space, then an asterisk, then the filename. It's a clear format, flexible, relatively fool-proof ("*" is not allowed on any file system), and well supported.
##### Other formats I've come across..
single file single MD5/SHA1 hash types - these necessarily have the same name as the file, with ".md5" or ".sha1" extension added, and are often hand-made by system admins, or else piped from a shell md5/sha command) ..

01805fe7528f0d98c595ba97b798717a
4988ae20125db807143f84dbe09df9782c3c033a

space delimited hashes (before we figured out the clever asterisk)..

01805fe7528f0d98c595ba97b798717a 01 - Stygian Vista (radio controlled).mp3
4988ae20125db807143f84dbe09df9782c3c033a 01 - Stygian Vista (radio controlled).mp3

double-space delimited hashes (just silly, really)..
Believe it or not, this is the de-facto standard for md5 files, mainly because it's the output from the UNIX md5sum/sha1sum command in 'text' mode, which amazingly; is the default setting. By the way; md5sum's "-b" or "--binary" switch overrides this insanity.

01805fe7528f0d98c595ba97b798717a  01 - Stygian Vista (radio controlled).mp3
4988ae20125db807143f84dbe09df9782c3c033a  01 - Stygian Vista (radio controlled).mp3

back-to-front hashes in parenthesis - this is quite a common format around the UNIX/Solaris archives of the world (it's the output from openssl dgst command) ..

MD5(01 - Stygian Vista (radio controlled).mp3)= 01805fe7528f0d98c595ba97b798717a  or..
MD5 (01 - Stygian Vista (radio controlled).mp3) = 01805fe7528f0d98c595ba97b798717a  even..
SHA1(01 - Stygian Vista (radio controlled).mp3)= 4988ae20125db807143f84dbe09df9782c3c033a

checksum supports verification of all  these formats with ease, so feel free to point it at any old folder structure, Linux CD, whatever, or any .md5 or .sha1 files you have lying around, and get results.

And in case the above track names got you googled here, yes, checksum also works great in Microsoft® Vista, and Windows 7 of course. ;o)

## simple checksum

Installed along with checksum is checksum's little brother app, "simple checksum", a supremely simple, handy, free, and highly cute drag-and-drop desktop checksumming tool; for all those "wee" hashing tasks..

Drop a file onto simple checksum, get an instant MD5 or SHA-1 hash readout.

Drop two files, and get an instant MD5 or SHA-1 file compare.

Drop a file onto simple checksum with a hash in your clipboard, get an instant clipboard hash compare.

And that works from your "SendTo" menu, too (select two files - SendTo simple checksum.. instant file compare), as well as drag and drop onto simple checksum itself, or a shortcut to simple checksum. Packed with intuitive HotKeys and time-saving automatic settings, simple checksum is Very Handy Indeed!

LIVE MD5+SHA1 Multi-Hashes..
﻿# made with checksum.. point-and-click hashing for windows. # from corz.org.. http://corz.org/windows/software/checksum/ # 7024ccb56480d868b82127e53bdb7a6e *checksum.zip 52c83b9c396d30f474b6eff6cc625b2311158be1 *checksum.zip

NOTE: If your Anti-Virus software detects anything in this software, I recommend you switch to an Anti-Virus that isn't  brain-dead. If you DO discover an actual virus, malware, trojan, or anything of that nature inside this software, please mail me, and I will send you a cheque for a Million Pounds, as a reward. In other words, this software is clean.

These guys agree..

(Ahh.. The beauty of PAD Files!)

## itstory.aka. 'version info', aka. 'changes'..

This is usually bang-up-to-date, and will keep you informed if you are messing around with the latest beta, and let you know what's coming up next. Note: it was getting a bit long to include here in the main page, so now there's a link to the original document, instead..

## itstory is here

Eric - 29.07.12 3:45 am

Very simple question that I can't seem to figure out. How do I use checksum to verify the SHA1 of a disc in it's entirety, ie, one checksum for an entire physical CD/DVD. Right clicking on a drive D:, for example, produces a hash for every file on the disc, which is not what I'm looking for. I just want one number to compare to the ISO file's hash.

See here. ;o) Cor

Phil - 02.08.12 11:47 am

Is it possible to amend the comment block that appears at the top of each hash file? If possible we'd like to include a link to our own organisation and some extra text.

I know it's possible to manually edit the file after it's generated but I wondered if it can be done automatically when the file is created.

It currently is not possibly, though it's already on my 2do list for the next version (from an email request) ;o) Cor

Yubs - 14.09.12 9:07 pm

Hi There,

First off, I love checksum (and simple checksum), excellent work.

I was wondering if you could comment on the reliability of interrupted checksum operations.

I've been using checksum to verify copies of backups I am making. In total, I'm running checksum on 1.3TB of data located on a server which I'm connected to by gigabit LAN. As you can imagine, this takes awhile, which is understandable, but unfortunately the new system I'm running checksum on (not the server) seems to be crashing and I have to restart the checksum procedure. This (finally) brings me to 2 questions:

(Q1) I've been using the "synchronize" option as a sort of 'resume' feature. Am I correct in thinking this mode will not re-process checksums for files that were processed before the system crashed?

That is correct. Using synchronize as a "resume" is smart thinking.

(Q2) If checksum is interrupted during the processing of a file, would it have recorded an intermediate result to the .hash file that is incorrect? If I was correct about Q1, that would mess up my use of 'synchronize' as a 'resume' method because checksum would think the file had been processed when really it hadn't completed. So are the checksums only written to the .hash file AFTER the target is 100% processed?

Absolutely. Only when file hashing is complete (in memory) is the result appended to an existing .hash file.

Any other tips on how to recover from an interrupted checksum job?

If it's from a system crash, just the usual stuff, always check your disks before continuing being the most important. And prefer file systems with the ability to rewind, like NTFS or most common Linux file systems.

If it's only checksum that's interrupted, there's nothing special to note; aside from choosing synchronize, which you got.

Thanks again for making such a great tool!

;o) Cor

Matt - 01.10.12 7:01 pm

Any news regarding CRC32-implementation?

Thanks!

It's not expected any time soon, but is on the 2do list somewhere.

;o) Cor

checkercab - 16.10.12 3:20 pm

Windows XP SP3 portable mode checksum 1.2.3.9 and simplechecksum ignore the following checksum.ini parameters:

Most of the ini parameters only apply to checksum,. not simple checksum, like these...

unified_extension=false
Should produce .md5 output file extension instead of .hash with checksum.ini parameter algorithm=md5, but does not. Other hash file checkers are incompatible with the unconventional .hash extension.

That would be a first! Are you sure you are editing the correct ini file?

checksum's <Shift> dialog still defaults to true.

That preference is to disable the beeping on hash errors, nothing else.

The output hash file #(pound sign) comment prefix is incompatible with other hash checkers which expect the conventional md5sum format ;(semi-colon) comment prefix, notably FileVerifier++ 0.6.3.5830, hkSFV 2.0.1.84, and ilSFV 1.10, likely many others, though not MD5 Checker 3.3.0.12. My Windows' system language is English-US, Windows' other language tabs are their original defaults.

The next version of checksum will give you the option to disable the comment altogether. I'll add a semicolon option to checksum's future preferences. Most applications that handle ini files can accept either format.

Checksum's dialogs are microscopic on 1280 x 800 laptop screens even at 120 dpi scaling -- you so obviously have a gargantuan monitor, maybe two!

Nope, just the one. And my laptop's resolution is smaller than yours, I haven't noticed any problem. I do plan to add some options for visually impaired (see above). Note, 72 DPI is normal for screens. Try that.

The file drag and drop paradigm is unwieldy, as it requires either two Windows Explorer instances or a third-party dual pane file browser in portable mode, or a lot of unwelcome gymnastics in conventionally installed mode.

checksum is not designed to operate with drag and drop, though it is quite doable I almost never do. The context menu is the best place to access checksum's features, or if you prefer, the command-line.

Thanks for the feedback.

;o) Cor

Juan - 23.11.12 7:26 pm

Great program.
Thank You

Richard H - 15.01.13 1:04 am

I like this program so far. I'm a beginner at using checksum to verify my stored data.
Whenever I would burn data to cd or dvd I would at least check that the "properties" could read the
data "size" and "size on disk". But from now on I'll store checksum values on the disks along with the data.

puzzled user - 27.02.13 7:12 am

I have some foreign language (korean) folder and file names. Checksum doesn't work for these files. It simply ignores the files or folders and can't find anything to checksum.

yet you mentioned it can handle foreign languages as well, so quite puzzled if it's just my computer...

Well, it depends on the languages. The upcoming beta handles foreign languages better. If you are a licensed user, you can play with the new beta, just mail me. ;o) Cor

indigital - 28.02.13 11:44 pm

Hello.

I recently run into the following critical error (dialog field):

"Hashing Library Error!

I couldn't open the hashing library..
c:\bat\hash.dll

Perhaps it could not be saved in its specified location"

It appears and no hasing is done. I noticed however, that the hash.dll under c:\bat is created and is left there even after the program termination.

I should add that I run Windows 8, but I'm damn sure checksum has worked here before.

Any thoughts? Thank you!

indigital

Damn that abomination of an OS! Yes, it should work on Windows 8, though you will probably want to install it as an Administrator. It sounds like you have permissions issues in checksum's (portable) location. ;o) Cor

Dario - 01.03.13 3:27 pm

Is the function "Find a file with specific hash" supported ?

No, nor is it being considered. However, it would be trivial to use checksum for such a purpose (create a root hash then search the .hash file). ;o) Cor

alden - 02.03.13 6:32 am

First, many thanks for the program. It's great!

It seems that the checksum is computed across NTFS file streams. I assume that this is a consequence of it is so fast - bypassing the file system. Still, it would be nice to have the option to include the streams or not (perhaps as a command-line switch), as the same file or not. For example, I have

foo.txt
foo.txt:bar

foo.txt has two streams, the default, (often called "", ":", "$DATA"). I would like to be able to create checksums as follows. Option 1: abcd foo.txt (includes both the default and bar streams) Option 2: dcba foo.txt (the default stream only) Option 3: dcba foo.txt (just the default stream) aaaa foo.txt:bar (just the bar stream) I'm not sure how much slower this would be, but it would be worth it for some of my applications. It's not something I've ever considered supporting because frankly, aside from a few ubergeeks (and Mark Russinovich, of course) no one uses or even knows about NTFS alternate data streams. Maybe some big potential corporate user will come along and sponsor that change. That's unlikely though, as support for streams on Windows is shaky and inconsistent. If anything, the idea that I could attach data to a file and not change its hash is much more useful. ;o) Cor rogw - 03.03.13 11:43 am Hi. Installing checksum I get "Autolt Error Line -1: Error:Unknown function name". I notice that someone previously reported this and was advised to re-download. Done this - but still the same. Thanks. rogw - 03.03.13 1:06 pm Please ignore last message - a reboot fixed it. Glad to hear it! The installer isn't perfect, but it does work. Thanks for posting a follow-up, few do. ;o) Cor Marapi - 05.03.13 7:16 am Hi, one HUGE feature I rely very heavily on with RapidCRC is sadly (and very, very strangely) not available in checksum. It's the ability to select multiple folders or files to be hashed. What I normally do is select multiple non-adjacent folders or files (ctrl+click) and then right-click send-to > RapidCRC. RapidCRC launches and then proceeds to hash all the files I selected. It's dead simple and very intuitive. Now when I do the same with checksum, there's a pop-up warning me about multiple instances of checksum thrashing my hard drive! After that checksum only works on a single entry I selected and ignores the rest! I have to manually select each item to hash and wait for it to finish before selecting another one. ONE AT A TIME. The only other option is to move all the things I want to hash into one folder, then right-click that folder > create checksums. After that I have manually move back everything to where it was along with their new hashes, which is even more tedious than hashing individual items one at a time. RapidCRC doesn't launch multiple instances. It simply launches ONE instance with all the files and/or folders I selected and just checksums them one at a time inside a queue. It seems so natural and logical I don't understand how checksum doesn't have this function. By the time you have finished selecting all your folders, the checksum user has hashed the entire drive and gone for a coffee. ;o) Cor Marapi - 05.03.13 4:29 pm I can't fathom why you would assume it takes me so long to select multiple folders. I wouldn't waste my time manually selecting tens or hundreds of folders if that's what you're imagining I'm doing. Think 15 items MAX. Usually it's just 2. TWO folders. That's it. The problem is, if I decide to hash those TWO folders with checksum, I end up wasting a lot of time. This is because the folders I work with aren't usually very small. Think 20-60 GB EACH. It may be only two folders but already they can total more than 40-100 GB. Normally I would just select those two folders, right-click, send to RapidCRC, then walk away. When I come back, it's done. Simple. But with checksum I can't just walk away. I have to wait for it to hash ALL 60 GB in one folder, then have it start on the OTHER 60 GB folder, and THEN I can walk away. BTW, those TWO folders reside on a 2TB drive almost completely filled with lots of large files mixed with thousands of tiny files, and it's one of many drives I manage. You're telling me the only other options I have are: a: Just hash the entire drive. ALL 2000 GB instead of just the two 60 GB folders. BTW I have in fact hashed 2TB worth of data before, and it takes HOURS. Checksum (or any program) can't magically hash faster than a hard drive can read. b: Put the two folders I want to hash into another folder, and then hash that folder. Then move the two folders back to where they were and delete the temporary folder. Like I said before, this gets old very quickly especially when you have to do this multiple times a week. I can avoid having to move folders and files back and forth by using an extremely nifty program called "Virtual Disk" (virtualdisk.net) which is unlike anything I've ever seen before or since. Basically, it allows me to add folders or files from anywhere and they'll appear inside the virtual disk as if they were physically there, but the folders haven't actually moved. It's essentially NTFS junction points on steroids. This allows me to select multiple folders and files even from different physical drives, and have checksum hash them all in one go. While this is a neat workaround for checksum's limitation of only being able to hash one partition at a time, it is far from ideal for smaller tasks that need to be done on a regular basis. This also applies to verifying hashes. Sometimes I just want to verify TWO large files or folders, not the entire drive, which again, takes a lot of time. All I'm asking for is essentially an "enqueue" function, and I can finally drop RapidCRC for all my non-CRC32 hashing tasks. If you're telling me it is infeasible to implement such a simple function in checksum, then I ALMOST regret donating those$7 for a checksum license.

I hear what you are saying, and I have heard it before once or twice. I guess not enough people have asked for this for me to consider it seriously. checksum has so many ways to synchronize and ignore folders and be scripted that I expect many users wishing to do such things on a regular basis have a shortcut for that.

I do understand the convenience of selecting multiple folders for hashing though it's been years since I considered doing it myself, stuff that gets hashed tends to live together these days.

I didn't say it was infeasible, in fact, I told you nothing! But I can also assure you it is no "simple function". You are spawning multiple processes with Explorer - checksum (the first instance) must track all those processes and queue their command lines into a batch of some sort before killing them all for the task itself, and that's assuming Explorer has indeed launched them all, yet. Or else have them all running feeding their commands into a central queue. I could certainly look into it, in fact I've thought of a couple of unusual approaches as I've been typing this, but there's currently a freeze on new functions so that I can get the current beta released before Summer!

In the meantime, if it's something you do a lot, with the same folders, it's simple enough to whip up a wee batch file to handle the job, or else check out this.

If you need a hand with any of this, get in touch!

;o) Cor

Marapi - 06.03.13 2:31 am

Thank you for pointing out hashDROP. It solved my problem perfectly, and it uses the same ini as checksum which is very convenient.

I mistakenly assumed queuing multiple files was simple since it seemed that way with programs like RapidCRC and foobar2000. There's even a method in basic javascript for opening multiple entries in web browsers so it seemed trivial to implement a similar function to handle local directory paths. I was thinking something along the lines of recording the file and folder paths to an internal list and then just going through it one at a time. But it seems hashDROP already does exactly this, so I understand how there's no need to do work that's already been done. I'm only curious as to what hashDROP does that can't be easily done within checksum. Is it doing what you described and just opening and closing instances of checksum automatically?

It's to do with how explorer handles things. If you drag and drop or send a file to a program by some other means (context menu, SendTo, etc.) the command line looks like this..

c:\path\to\program.exe "d:\path\to\some.file"

This is trivial to deal with, internally. Things get decidedly trickier when you send multiple files. If you did that via drag and drop, the command line might look like this..

c:\path\to\program.exe "d:\path\to\some.file" "d:\path\to\some.file2" "d:\path\to\some.file3"

Which is also fairly easy to deal with, internally. However, if you did the same thing via a context (right-click) Explorer menu. The command line looks like this..

c:\path\to\program.exe "d:\path\to\some.file"

and this..

c:\path\to\program.exe "d:\path\to\some.file2"

and this..

c:\path\to\program.exe "d:\path\to\some.file3"

In other words, Explorer launches three separate processes, one for each file.

So now we need some kind of built-in mechanism to track completely separate instances of the same program running on the system (checksum already has this capability) and then some way of passing the data (file name and command-line switches) from the other instances back to the first instance of the running program, queue those commands, and then kill the other instances so only the first remains to; once it it certain no more data is coming; complete all the tasks.

While not trivial, it's certainly doable. I've just never had a burning need to do it. I did quickly play around with an idea after your last post, which worked quite well, so it may appear in checksum sooner than expected!

By the way, afaik, foobar2000 was unable to do this until fairly recently, much to the annoyance of its users - in a media player, this sort of capability is definitely expected.

;o) Cor

Richard - 12.04.13 3:45 pm

Is there a console application nestled in your program?

It seems your program is too good for my needs. I'm comparing files on different computers. And running hash tools over the network is ugly in the extreme. So I've written a clever perl script to write a customized batch file, copy the hash utility over to that remote directory, and run it locally. The concept is great, except I haven't found a utility that doesn't need installing, is console based, won't crash, and in fciv's case won't try to remember past work.

Although not a "console app", checksum is in large part designed to be run from a console, or batch script, task scheduler, etc., with a vast selection of command-line switches at your disposal..

http://corz.org/windows/software/checksum/checksum-tricks.php#custom-command-line-switches

checksum can run in a completely portable state too, so long as there is a checksum.ini locally, checksum will use it. No installation required.

And if you are running checksum from a command prompt or some remote launching mechanism, checksum even has a special switch ("q") to suppress all dialogs on the local machine. Add to that fully customizable local logging and it looks like you are good to go.

Need anything else?

;o) Cor

Shane Saunders - 20.04.13 12:14 pm

I have been sent to hash SH1 but I have know idea hoe to open them ,,reply to them or even read them,, I would love some help on what to do please.. I know how to save keys to GPA 0.9.1 svn1024 and encrypt a message and send i but that's about as far as my knowledge goes.. Here is what iv been sent and hopefully you can help me open them and teach me to do it myself..

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBsJRPSJMAAoJENSgSmxCqWM3/DQIAKFO2oesfQZxinoxrQ7WS+xb
qiV0I5I2xcCJEFPC+33n072KYcUS4vrrXQSTlTNhvxnAxA0cNlWJdxqGtbw//hsZ
gRwuJ1/D7pf67aHnxY4iKo/NHm3DxIxnNggsAyhlke6ux/33n5xXL+qGPLRRJyMi
cq2dv36yRVWteq3n7Wn/THxWm++PJnncsrB5yzUe6nZpgT3Co/a00vlnZoLQVYFB
nNrxL3aButWpp+EqUnjz+fNyJ9epIfNzgCX61Z7uUuBleXyfHrZRcN3AcRtkeces
19sdys7mlPSzvoKNfkQTpoZjcVkMy27MUXtttnKPpMrXMbdSr7ohLi+2ciCr9cU=
=RcAm
-----END PGP SIGNATURE-----

This isn't a checksum file. This is a SHA1 "Signature". It enables you to verify; much like checksum does with files; the identity of the sender.

You don't have to do anything with this SHA1 hash. If you like, you can install gnupg, maybe the Thunderbird OpenPGP plugin and, once this individual's key has been verified and added to your keyring, use the above hash to verify a sender is who they say they are. I'm assuming by "sent", you mean email.

You can also use these signatures to import a person's public key from a public key server (there are many) and, assuming that information is okay, download, install and use their published public key to send them encrypted messages which only they can read. There may be other things you can do with them!

But again, nothing to do with checksum.

;o) Cor

Marapi - 25.04.13 11:41 am

Hi, checksum seems to ignore files and folders with certain characters like: ★
(There are others but I can't remember them right now.)

You must have missed this when reading the recent changes!

Also, checksum errors out when trying to checksum folders with names longer than 100 characters? 101 or more characters results in an error and unhelpful fallback behavior.

If file name length is the problem I wish checksum would've just said so, though 100 characters is a bit low for a limit. Even the old win32 api has a limit of 255 characters, or 249 or whatever, but way higher than 100.

Nope, it's whatever MAX_PATH is on your system, usually 260 characters, even on the newest Windows systems. Your issue must be something else.

;o) Cor

Marapi - 25.04.13 3:14 pm

At the time of this writing, there's nothing there.

Only registered users have access to unreleased betas. At the time of writing, it should be out within a couple of weeks. ;o) Cor

Alexy - 02.05.13 5:39 pm

Hi, thanks for making this very useful tool. After donating, how does one get a license number?

Click the "Licensing" link at the top of this page. You can't miss the PayPal button. Once the PayPal process completes, your license code is sent to you automatically. You don't have to do anything.

;o) Cor