Comparison of file verification software

The following tables compare file verification software that typically use checksums to confirm the integrity or authenticity of a file.

General

Software

Developer

First public release

Latest stable version

Cost (USD)

Open source

License

Notes

cksum

various (POSIX)

various

various

DySFV

Johan Sonesson

2007

1.1.0.0

freeware

FastSum

Kirill Zinov

2003

1.6.0.257 GUI/1.9.0.149 CLI

various

freeware/shareware

FSUM

SlavaSoft

2.52

freeware

HashCalc

SlavaSoft

2.02

freeware

jHashCalc

Death Master

01.10.2007

1.2

GPL

implemented in Java

Jacksum

Johann N. Löfflmann

07.07.2002

1.70

GPL

implemented in Java

md5sum

various (POSIX)

various

various

sha1sum

various (POSIX)

various

various

TeraCopy

Code Sector

2007

2.0

various

freeware/shareware

wxChecksums

Julien Couot

2003

1.2.2

GPL

SuperSFV

Thomas Dixon

1.1

GPL

Mac OS X (Universal)

SFV Checker

Traction Software

1.19

{{?}}

proprietary

There were several different file verification technologies, at this writing, including Simple File Verification (SFV), Message-Digest algorithm 5 (md5), Secure Hash Algorithm 1 (sha1), and Checksum. A number of computer programs incorporated these technologies, in various ways. The common goal, in general terms, was to use the data within a file to calculate a number. A very simple example, simpler than the one at the foregoing Wikipedia link for Checksum, would arise where one combined the numerical value of letters together. In the string "adb," for instance, the letter "a" would have a value of 1, because it comes first in the alphabet; "d" would have a value of 4; and "b" would have a value of two. If the algorithm in question called for adding the first two letters and subtracting the third, the result would be 1 + 4 - 2 = 3. If one of the letters got changed, the result would not be 3 anymore. A person could store the value of 3, with that "adb" string, and could re-run the calculation at any time to make sure the string's contents had not changed. More complex algorithms, based upon large quantities of data within a file, significantly reduced the possibility that part of a file could change without also changing the resulting value. So, for these technologies, the basic idea was that one would calculate the sum when the file was created; would keep that sum with the file; and would refer back to it whenever one wanted to verify that the file had not changed.