PAGES
← all tools
◆ Digital Forensics & Incident Response

hashrat

1.21 open-source

Hashrat is a hash-generation utility supporting md5, sha1, sha256, sha512, whirlpool, jh-244, jh256, jh-384, and jh-512 functions.

Summary

hashrat is an open-source, GPL-licensed command-line utility for generating and checking file hashes, aimed at DFIRDFIRDigital forensics and incident response, investigating what happened during a security incident and containing it. The work includes preserving evidence, reconstructing activity and restoring systems. practitioners and sysadmins who need to fingerprint or verify files rather than build hashing into an application. It covers MD5, SHA1/256/384/512, Whirlpool, and the JH family, plus HMACHMACA keyed hash that proves a message came from someone holding a shared secret and was not altered. Webhooks and API request signing commonly use it. variants, and can output in traditional md5sum-style format or its own, encoded as hex, octal, decimal, or base64. Beyond hashing single files, it recurses through directories, hashes whole devices, checks hashes against a reference file, searches for files matching a given hash, and finds duplicates, with a CGI mode for looking up hashes from a web page. First committed in 2014 with 14 contributors, it has slowed to one commit in the past year and its last release was 522 days ago.

Hashrat is a hash-generation utility supporting md5, sha1, sha256, sha512, whirlpool, jh-244, jh256, jh-384, and jh-512 functions.

How hashrat helps

Which files in this directory tree have changed since I last recorded their hashes?

recurses through the tree, hashes every file with the chosen algorithm, and checks each one against a saved reference file, reporting only the mismatches if asked

Is this file the one I think it is, byte for byte?

hashes it with any of MD5, SHA1/256/384/512, Whirlpool, or the JH family and prints the digest in hex, octal, decimal, or base64 for direct comparison against a known-good value

Where else on this system does a copy of this exact file exist?

takes a hash and searches the given paths for files whose content matches it, so a known artifact or leaked file can be traced across a filesystem

Which files in this set are duplicates of each other?

walks the given paths, hashes each file, and groups matches so redundant copies are identified without visually diffing anything

Has this whole device or partition been altered since the image was taken?

hashes the raw device and produces a single digest that can be checked again later to confirm bit-for-bit sameness

all 10 features, with the evidence for each →

Languages

Not documented

Features

10 capabilities · 3 backed by code, an API document or a real run

Built from hashrat's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

  • hashrat covers 1 of the 11 endpoint investigation and controls capabilities we track.

What hashrat offers you

  • Command-line interface2
All capabilities 10 capabilities
File and directory integrity hashing verified Computes cryptographic hashes (SHA-1, Whirlpool, HMAC-Whirlpool) of files and directories, recording each entry alongside metadata such as type, mode, uid, gid, size, mtime, and inode. 4 releases · 15 other sources · first seen Jan 2016

Shared capability: File integrity monitoring

release

  • Enables hashrat's match (-m) command to honor the hash type supplied via stdin 1.20 · Jun 2024 · source · release history
  • -i and -x flags now accept comma-separated lists of patterns instead of single values 1.8.6 · Jun 2017 · source · release history
  • Adds -type flag to .hashrat CLI to chain hash algorithms (e.g., sha256,sha1,md5) in a single invocation v1.8.3 · Sep 2016 · source · release history
  • Add support for the -C flag to load hashes from a file and scan a target directory against that list. 1.8.0 · Jan 2016 · source · release history

we ran it 8 total

  • The tool produced a single hash record for the top-level directory itself, not its contents. Aug 2026 · the full run
  • The tool produced a single line covering the top-level directory itself, reporting its Whirlpool/base64 hash alongside metadata: type dir, mode 40755, uid/gid 0, size 4096, and inode 891705. Aug 2026 · the full run
  • Produced SHA-1 hashes for 6 files: Dockerfile, app/db.py, app/settings.py, k8s/deployment.yaml, package.json, and requirements.txt. Aug 2026 · the full run
  • The tool produced a single BSD-format Whirlpool hash of the source-corpus path, base64-encoded: Gfph11UipGabROOcHS4XJsUwIyEw1Af4mv7glkmX96c+g75piyiP68+I4+A8TwdX6olk5Ztj2TcIsTjMQqZusw==. Aug 2026 · the full run
  • The tool produced a single hash record for the top-level directory /opt/ctk/fixtures/source-corpus rather than recursing into its contents, outputting the Whirlpool digest in base64 alongside file… Aug 2026 · the full run
  • The tool produced a single Whirlpool/Base64 hash line for /opt/ctk/fixtures/source-corpus in the traditional checksum format. Aug 2026 · the full run

example 7 total

  • Use hashrat to match hashes provided via stdin pipe without specifying type on CLI echo "e99a18c428cb38d5f260853678922e03" | hashrat -m match 1.20 · Jun 2024 · source
  • Scan a directory while ignoring large binary archives defined in a separate exclusion list. hashrat -X excludes.txt ./source_dir v1.9 · Sep 2018 · source
  • Include and exclude multiple file types in a single command without chaining flags. hashrat -i "*.js,*.ts" -x "node_modules/,test/" 1.8.6 · Jun 2017 · source
  • Detect new files in a directory by matching them against a known-bad hash list. hashrat -C ./known_bad_hashes.txt ./suspicious_directory/ 1.8.0 · Jan 2016 · source
  • Check hashes, show only failures cat hashes.sha1 > hashrat -cf
  • Search for files matching hash list cat APT1.md5 | hashrat -m -r /
Extended-attribute (xattr) hash storage verified Optionally writes computed hashes into trusted extended attributes on the filesystem; the operation fails with an explicit error when the binary is compiled without xattr support. 3 releases · 2 other sources · first seen May 2016

Shared capability: File integrity monitoring

release

  • Upgrades dependency to libUseful-4, resolving compilation failures on macOSx related to xsetattr v1.10.3 · Dec 2019 · source · release history
  • Adds -X option to load an exclude list of files from a file v1.9 · Sep 2018 · source · release history
  • Piped hashes are now copied to the X11 primary selection and clipboard via Xterm control sequences v1.8.1 · May 2016 · source · release history

we ran it

  • The tool produced one hash entry for /opt/ctk/fixtures/source-corpus/Dockerfile before printing 'XATTR Support not compiled in.', indicating the binary lacks extended-attribute support. Aug 2026 · the full run
  • The tool computed a Whirlpool/base64 hash for the top-level directory entry but then printed 'XATTR Support not compiled in,' meaning it could not store the hash in trusted extended attributes. Aug 2026 · the full run
Extended hash algorithm support shipped Expands the set of available cryptographic algorithms by supporting OpenSSL-provided hashes and specific new digests like SHA-384, along with utilities to list them. 3 releases · 1 other source · first seen Jun 2024

Also counts toward: Command-line interface

release

  • Supports openssl-provided hashes, extending the algorithm surface beyond built-in types. 1.21 · Jun 2024 · source · release history
  • Adds -sha384 flag to compute SHA-384 digests. 1.21 · Jun 2024 · source · release history
  • Adds -list-hashes flag to list available hash types. 1.21 · Jun 2024 · source · release history

example

  • Hash entire device with base64 output hashrat -devmode -whirlpool -64 /dev/sda1
Post-hash hook script execution verified Attempts to execute a specified path as a hook script after hashing completes, with the shell enforcing normal filesystem permissions on that script. 1 release · 2 other sources · first seen Oct 2017

release

  • find duplicates mode now invokes a hook script, passing the current file path as argument 1 and the duplicate's path as argument 2. v.1.8.11 · Oct 2017 · source · release history

we ran it

  • The tool successfully hashed the target directory itself, producing a single Whirlpool/base64 digest for the directory entry. Aug 2026 · the full run

example

  • Run duplicate detection while executing a custom hook script for each pair of found duplicates. hashrat find duplicates --hook-script ./my_hook.sh v.1.8.11 · Oct 2017 · source
Build-time configuration options shipped Provides configure script flags to enable hardening and compression support during compilation. 1 release · 1 other source · first seen Jun 2024

release

  • Adds --enable-harden and --enable-zlib options to the ./configure script to control build-time capabilities 1.20 · Jun 2024 · source · release history

example

  • Build hashrat with zlib compression support and hardening flags enabled ./configure --enable-zlib --enable-harden make check 1.20 · Jun 2024 · source
Per-file hash timing reporting shipped Outputs the time taken to hash each individual file to standard output when the verbose flag is enabled. 1 release · 1 other source · first seen Dec 2019

Also counts toward: Command-line interface

release

  • Adds -v CLI flag to enable verbose mode which prints per-file hash-time duration in standard output v1.10.3 · Dec 2019 · source · release history

example

  • Inspect the time taken to hash individual files by appending -v to the standard command. hashrat -v /path/to/target v1.10.3 · Dec 2019 · source
Recursive website scanning shipped Recursively scans a website by following links found in HTML pages, including experimental support for processing links within HTML files. 1 release · 1 other source · first seen Sep 2018

release

  • Adds experimental recursion for HTTP URLs by processing links within HTML files v1.9 · Sep 2018 · source · release history

example

  • Recursively scan a website by following links found in HTML pages. hashrat -net -r http://example.com/index.html v1.9 · Sep 2018 · source
Duplicate file detection shipped Identifies files with identical content across the filesystem and can update cache metadata to track them. 2 other sources

docs

  • Hash-generation utility supporting MD5, SHA, Whirlpool, and JH hash functions with directory recursion, file checking, duplicate finding, and HMAC/TOTP support.

example

  • Find duplicate files, update xattr cache hashrat -dups -r /home -u xattr
TOTP code generation shipped Generates Time-based One-Time Password codes for two-factor authentication purposes. 2 other sources

docs

  • Hash-generation utility supporting MD5, SHA, Whirlpool, and JH hash functions with directory recursion, file checking, duplicate finding, and HMAC/TOTP support.

example

  • Generate TOTP authenticator code hashrat -totp 3EK4LIB2553CUPA7DBXJMMKDCYTEA2IZA
CGI mode configuration shipped Enables configuring defaults for CGI mode and output format via an options file. 1 release · first seen Sep 2018

release

  • Enables configuring CGI mode defaults and output format via an options file v1.9 · Sep 2018 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for hashrat, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail hashrat puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

10 entries

  1. September 20261
  2. June 20242
  3. December 20191
  4. September 20181
  5. October 20171
  6. June 20171
  7. September 20161
  8. May 20161
  9. January 20161
    Show

    10 entries

    Project health

    Issue, contributor and maintainer activity in ColumPaget/Hashrat, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 0 −6 vs prior 12 months
    2. Maintainers 0 +0 joined · −1 left, last 12 months
    3. Bus factor 0 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close not measured issues closed, last 12 months
    6. Open backlog 6 of 24 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 6
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 73
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →