-
Notifications
You must be signed in to change notification settings - Fork 6
Features
Johann N. Löfflmann edited this page Nov 1, 2021
·
27 revisions
- Jacksum supports 471 algorithms including
- National and international standards of cryptographic hash functions:
- SHA-1
- SHA-2-family: SHA-[224,256,384,512], SHA-512/[224,256] (USA, NIST FIPS 180-4)
- SHA-3-family: 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
- 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]
- 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)
- for a full detail list, go to https://github.com/jonelo/jacksum/wiki/Supported-Algorithms
- 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
- Select one, a few, many, or all algorithms for hash calculation and verification
- Select algorithms manually, filter them by name or message digest width
- Select any of the predefined CRCs
- Customize your own CRC, 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
- 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.
- 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
- Include not only the hash, but also the file size and/or file modification timestamp of files for performing reliable integrity checks
- Perform integrity checks, and detect ok, failed, missing, and new files
- 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 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)
- 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
- 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.)
- The program is mature and very stable
- Specify your preferred level of verbosity
- Obtain details for each algorithm, including comprehensive compatibility lists
- 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
Jacksum • https://jacksum.net • Jacksum on GitHub