Password Attackshashidentificationmd5sha256hash-types

name-that-hash

name-that-hash identifies MD5, SHA256, and over 300 other hash types from provided hash strings or files. It helps users quickly determine the algorithm used for unknown hashes.

Description

name-that-hash is a utility designed to recognize and name various hash types, such as the example MD5 hash 5f4dcc3b5aa765d61d8327deb882cf99. This tool is particularly useful when encountering unknown hashes during security assessments, penetration testing, or forensic analysis, eliminating the need for manual lookup or trial-and-error.

It supports both single hash identification via text input and batch processing from newline-separated files. Users can output results in standard format or JSON for grepping and scripting. Additional features include Base64 decoding for encoded hashes, with fallback to standard identification for mixed content.

Developed by the creator of RustScan and Ciphey, the tool is accessible via the 'name-that-hash' or 'nth' command and integrates well into Linux workflows, especially on Kali Linux.

How It Works

The tool checks input hashes against a database of over 300 known hash algorithms, including MD5 and SHA256. For --base64, it first decodes Base64-encoded input before identification, falling back to direct hash matching if needed. Output can be formatted as JSON (--greppable) for machine-readable parsing.

Installation

bash
sudo apt install name-that-hash

Flags

-t, --text TEXTCheck one hash, use single quotes ' as inverted commas " messes up on Linux.
-f, --file FILENAMEChecks every hash in a newline separated file.
-g, --greppableAre you going to grep this output? Prints in JSON format.
-b64, --base64Decodes hashes in Base64 before identification. For files with mixed Base64 & non-encoded it attempts base64 first and then falls back to normal hash

Examples

Identify a single MD5 hash using text input with single quotes.
nth --text '5f4dcc3b5aa765d61d8327deb882cf99'
Process all hashes from a newline-separated file named 'hash'.
nth --file hash
Identify a single hash and output in JSON format for grepping.
nth --text '5f4dcc3b5aa765d61d8327deb882cf99' --greppable
Using the full name-that-hash command to identify a single hash.
name-that-hash --text '5f4dcc3b5aa765d61d8327deb882cf99'
Process hashes from a file using the full command name.
name-that-hash --file hash
Process a file of Base64-encoded hashes with decoding.
nth --file hash --base64
Identify a hash with greppable JSON output using full command.
name-that-hash --text 'examplehash' --greppable
Updated 2026-04-16kali.org ↗