Tool Comparison Table - jonelo/jacksum GitHub Wiki
Table of Contents
Note
Hashcat is one of the best tools for password cracking. Jacksum covers all other use cases ;)
Jacksum and Hashcat are both hash tools. However, there is a significant difference in the use cases they support and for which they are designed. The following table will help you understand these differences.
| Use Case 1 | Use Case 2 | Use Case 3 | Use Case 4 | |
|---|---|---|---|---|
| Calculate Hash Values | Find Files by their Hash Value | Find Hash Functions/CRC Definitions | Crack Passwords | |
| File/Data | available | wanted (exists, must be located) | available | wanted (does not exist, must be guessed) |
| Algorithm | available | available | wanted | available |
| Hash | wanted | available | available | available |
| Jacksum | supported | supported | supported | limited *) |
| Hashcat | – | – | limited **) | supported |
*) Jacksum does not implement dedicated password hashing functions such as bcrypt, scrypt, Argon2, or PBKDF2. Those functions are deliberately slow, they take a salt and a cost parameter, and some of them accept only short character strings that must not exceed a certain length of a few dozen bytes. If none of that is required, Jacksum can perform a dictionary attack in a single step:
> jacksum -a md5 --string-list rockyou.txt -e 5f4dcc3b5aa765d61d8327deb882cf99
5f4dcc3b5aa765d61d8327deb882cf99 password
If you want to check many hashes against the same word list, it pays off to precompute a lookup table once and to search it repeatedly:
> jacksum -a md5 --string-list rockyou.txt > lookup.txt
> grep "$md5hash" lookup.txt
**) Hashcat's --identify (since 6.2.4) guesses the hash mode from the format of the hash string alone. Jacksum's -a unknown:<bits> determines the algorithm by actually hashing the known data, and it even brute-forces the parameters of unknown CRCs.
Note
Get-FileHash requires PowerShell, and it supports only a handful of algorithms. It does not support verifying integrity using check lists, it cannot read its own output, and it does not support finding files by hash lists. Windows PowerShell 5.1 is closed source and runs on Microsoft Windows only, while PowerShell 7 is open source and cross-platform.
| Feature | Get-FileHash | Jacksum 4.0 |
|---|---|---|
| General | ||
| Open Source | no (PS 5.1), yes/MIT (PS 7) | yes |
| Supported OS | Windows (PS 5.1); Windows, macOS, Linux (PS 7) | any OS with a Java runtime (Windows, macOS, Linux, …) |
| Additional Requirements | Windows PowerShell 5.1 or PowerShell 7 | JRE or JDK 21 or later |
| Supported Algorithms | 7 (PS 5.1) / 5 (PS 7) | 586 |
| Supported CRCs | no | 19 predefined, plus customizable 1 to 64 bit |
| Supported Checksums | no | 38 |
| Major Operating Modes | ||
| Calculate Hashes from Files | yes | yes |
| Calculate Hashes from Strings | yes *) | yes |
| Calculate Hashes from Strings in Files | yes *) | yes |
| Calculate Hashes from an Internet Data Stream | yes *) | yes *) |
| Verify Data Integrity of a Single File | yes *) | yes |
| Verify Data Integrity of Multiple Files | no | yes |
| Find Files by Hash Values | no | yes |
| Find Hash Functions using Hash Values | no | yes |
| Major Features | ||
| Multi-Threading for Calculation | no | yes |
| Multi-Threading for Reading Files | no | yes |
| Supports Wildcards | yes | yes |
| Recursive Tree Traversal | no | yes |
| Detect File System Cycles | no | yes |
| Include File Size | no | yes, optional |
| Include File Timestamps | no | yes, optional |
| Read Its Own Output Format | no | yes |
| Read Check Files of Other Tools | no | yes, 18 predefined styles |
| Write Check Files of Other Tools | no | yes, 18 predefined styles |
| User-Defined Output Formats | no | yes |
| User-Defined Input Formats | no | yes |
*) some scripting or piping required