Features

 

Free Software
OSI certified

Comprehensive algorithm support

  • Jacksum supports 477 algorithms including ...
  • National and international standards of cryptographic hash functions: SHA-1, SHA-[224,256,384,512], SHA-512/[224,256] (USA, NIST FIPS 180-4); SHA3-[224,256,384,512], SHAKE[128,256] (USA (NIST FIPS 202); GOST, GOST Crypto-Pro (Russia, GOST R 34.11-94); Streebog-[256,512] (Russia, GOST R 34.11-2012); SM3 (China); Kupyna[256,384,512] (Ukraine, DSTU 7564:2014); LSH-256-[224,256], LSH-512-[224,256,384,512] (South Korea, KS X 3262); HAS-160 (KISA, South Korea)
  • All 5 candidates from round 3 the NIST SHA-3 competition (2007-2012): BLAKE-[224,256,348,512], Groestl-[224,256,384,512], JH[224,256,284,512], Keccak[224,256,384,512], Skein-256-[8..256], Skein-512-[8..512], Skein-1024-[8..1024]
  • 3 candidates from round 2 of the NIST SHA-3 competition (2007-2012): ECHO-[224,256,348,512], Fugue-[224,256,348,512], Luffa-[224,256,348,512]
  • Proposals from the 2005 NIST workshops before the SHA-3 competition: DHA-256, FORK-256, VSH-1024
  • International accepted, modern strong cryptographic hash functions: BLAKE2s-[8..256], BLAKE2b-[8..512], BLAKE3, ed2k, HAVAL-[160,192,224,256]-[3,4,5], RadioGatun[32,64], RIPEMD[160,256,320], Tiger2, PHP's variants on Tiger called "tiger192,4", "tiger160,4", and "tiger128,4", Whirlpool
  • eXtendable Output Functions (XOF) as cryptographic hash functions with a fixed length: SHAKE128, SHAKE256, KangarooTwelve, MarsupilamiFourteen
  • Broken cryptographic hash functions for education and backwards compatibility purposes: HAVAL-128-[3,4,5], MD2, MD4, MD5, MDC2, PANAMA, RIPEMD-128, SHA-0, SHA-1, Tiger, Tiger/128, Tiger/160, Whirpool-0, Whirlpool-T
  • Checksums that can be found in software products and operating systems: Adler-32, cksum (Minix), cksum (Unix), ELF (Unix), Fletcher's Checksum, FNV-0_[32,64,128,256,512,1024], FNV-1_[32,64,128,256,512,1024], FNV-1a_[32,64,128,256,512,1024], joaat, sum (BSD Unix), sum (Minix), sum (System V Unix), sum [8,16,24,32,40,48,56,64], xor8, XXH32
  • CRCs that are being used in many software products and protocols: CRC-8 (FLAC), CRC-16 (LHA/ARC), CRC-16 (Minix), FCS-16, CRC-24 (OpenPGP), CRC-32 (FCS-32), CRC-32 (MPEG-2), CRC-32 (bzip2), CRC-32 (FDDI), CRC-32 (UBICRC32), CRC-32 (PHP's crc32), CRC-64 (ISO 3309), CRC-64 (ECMA-182), CRC-64 (prog lang GO, const ISO), CRC-64 (.xz and prog lang GO, const ECMA), CRC-82 (DARC)
Multi-core/multi-CPU support
  • Supports multi-threading on multi-processor and multi-core computer systems
  • Calculates multiple hashes simultaneously, files are read only once, and the calculation load is distributed on the available cores
  • Processes multiple files simultaneously, i.e. files are read in parallel

Algorithm selection

  • Select one, a few, many, or all algorithms for hash calculation and verification
  • Select algorithms manually, filter them by name or message digest bit width
  • Select any of the predefined CRCs
  • Customize your own CRC from 1 to 64 bit width, because Jacksum supports the standard "Rocksoft (tm) Model CRC Algorithm", and an extended model of it
  • Algorithms can be concatenated in order to calculate many algorithms in one pass

Input related features

  • Recursively directory traversal
    • Processes directories recursively, and allows to limit the depth
    • Detects file system cycles and it avoids endless loops
    • Allows you to control how symbolic links on files and/or directories should be handled on all operating systems
  • Input from almost any source
    • Calculates hashes from files, stdin, file lists, command line argument values on all operating systems: Windows, Linux, Unix (e.g. macOS, BSD)
    • Calculates hashes from disks, and partitions on all operating systems: Windows, Linux, Unix (e.g. macOS, BSD)
    • Calculates hashes from block devices, character devices, named pipes, sockets, and sparse files on all Unix-like operating systems
    • Calculates hashes from NTFS Alternate Data Streams (ADS) on Microsoft Windows
    • Calculates hashes from doors on Solaris
  • Character sets, Unicode and BOM support
    • Full Unicode file name support for input files
    • Allows you to specify the character set for input files: GB18030, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, etc.
    • Ignores an optional Byte-Order-Mark (BOM) from the input if a BOM is allowed, but not required by the selected charset
  • The sky is the limit
    • Handles allowed max. length of filenames properly (e.g. 255 max. characters for a filename on Microsoft Windows NTFS file systems)
    • Handles allowed max. length of paths properly (e.g. 32,767 max. characters for the entire path on Microsoft Windows NTFS file systems)
    • It is large file aware, it can process file sizes up to 8 Exbibytes (= 8,000,000,000 Gibibytes), presupposed your operating system respectively your file system is large file aware, too.

Output related features

  • predefined standard formats
    • Output can occur in predefined standard formats (BSD-, GNU/Linux-, openssl-, and Solaris style, SFV or FCIV)
  • user defined formats
    • Use comprehensive format options to get the output you need
    • Create your own format and define a compatibility file to be able to read your own format again
    • create ed2k-links, magnet-links, Solaris' pkgmap format
    • Specify one of the supported encodings for representing hash values: Hex (lower- and uppercase), Base16, Base32 (with and without padding), Base32hex (with and without padding), Base64, Base64url, BubbleBabble, and z-base-32.
  • character sets, Unicode, and BOM support
    • Full Unicode file name support for output files
    • Allows you to specify the character set for output files: GB18030, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, etc.
    • Adds an optional Byte-Order-Mark (BOM) to the output if a BOM is allowed, but not required by the selected charset

Integrity verification features

  • Check against a pre-calculated hash set, and detect ok, failed, missing, and new files
  • Optionally include not only the hash, but also the file size and/or file modification timestamp of files for performing integrity checks
  • Use predefined compatibility files to read and write popular 3rd party format styles (GNU/Linux, BSD, SFV, FCIV, openssl, etc.)
  • Create and use your own compatibility files

Find objects with Jacksum

  • Find the algorithm that was used to calculate a checksum/CRC/hash
  • Find all files that match a given hash value (find duplicates of a file)
  • Find all files that do not match a given hash value
Cross-platform support
  • Operating Systems
    • Microsoft Windows (e.g. Microsoft Windows 10, and 11)
    • GNU/Linux (e.g. Ubuntu)
    • Unix (e.g. BSD-flavors, macOS, Solaris)
    • any other operating system or architecture with an OpenJDK compatible Java Runtime Environment (JRE) or Java Development Kit (JDK)
  • Supported architectures are dependent on the JDK
    • x86 64 bit (x64)
    • x86 32 bit (x86)
    • ARM 64 bit (AArch64, resp. M1)
    • ARM 32 bit (AArch32)
    • PPC 64 bit (ppc64)
  • written entirely in Java
    • no recompilation required
Interaction with other tools
  • Works with the SendTo-feature on many file browsers (e. g. macOS Finder, Microsoft Windows Explorer, Gnome Nautilus, KDE Konqueror, ROX Filer, etc.)
  • As it has a command line interface, Jacksum can be used in cronjobs and autostart environments
  • Jacksum returns an exit status which is dependent on the result of the calculation/verification process, so you can use Jacksum in scripts and batches and control the code flow in your own scripts
  • Use predefined compatibility files to read and write popular 3rd party format styles in order to interact with other tools (GNU/Linux, BSD, SFV, FCIV, openssl, etc.)

Other

  • The program is mature and very stable
  • Specify your preferred level of verbosity
  • Obtain details for each algorithm, including comprehensive compatibility lists
Developer support
  • Entire source code has been opened, is hosted on GitHub, and accessible using git
  • The project has been mavenized with a pom.xml which makes it easy to work in your preferred IDE
  • Jacksum provides an API, so you can incorporate Jacksum in your own projects
  • Javadoc is available
  • Jacksum keeps compatibility with JDK 11, but takes all the advantages of  JDK 11+ if available