Name-That-Hash
🔗 Don't know what type of hash it is? Name That Hash will name that hash type! 🤖 Identify MD5, SHA256 and 300+ other hashes ☄ Comes with a neat web app 🔥
Top Related Projects
World's fastest and most advanced password recovery utility
John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs
Hashtopolis - distributed password cracking with Hashcat
A tool for automating cracking methodologies through Hashcat from the TrustedSec team.
Crack hashes in seconds.
Quick Overview
Name-That-Hash is a Python library and command-line tool designed to identify hash types. It can recognize over 300 different hash types, making it a valuable resource for cybersecurity professionals, penetration testers, and cryptography enthusiasts. The tool provides fast and accurate hash identification with a user-friendly interface.
Pros
- Extensive hash type coverage (300+ types)
- Fast and accurate identification
- User-friendly command-line interface and Python API
- Actively maintained and regularly updated
Cons
- May occasionally misidentify similar hash types
- Requires Python environment for execution
- Limited to hash identification only (no cracking functionality)
Code Examples
- Identifying a single hash:
from name_that_hash import Name_That_Hash
nth = Name_That_Hash([
"5f4dcc3b5aa765d61d8327deb882cf99"
])
results = nth.identify()
print(results)
- Identifying multiple hashes:
from name_that_hash import Name_That_Hash
nth = Name_That_Hash([
"5f4dcc3b5aa765d61d8327deb882cf99",
"$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/"
])
results = nth.identify()
for hash_result in results:
print(hash_result)
- Using the command-line interface:
nth -t "5f4dcc3b5aa765d61d8327deb882cf99"
Getting Started
To use Name-That-Hash, first install it using pip:
pip install name-that-hash
Then, you can use it in your Python code:
from name_that_hash import Name_That_Hash
nth = Name_That_Hash(["your_hash_here"])
results = nth.identify()
print(results)
Or use the command-line interface:
nth -t "your_hash_here"
For more advanced usage and options, refer to the project's documentation on GitHub.
Competitor Comparisons
World's fastest and most advanced password recovery utility
Pros of hashcat
- Highly optimized for performance, capable of cracking complex hashes quickly
- Supports a wide range of hash types and attack modes
- Utilizes GPU acceleration for faster processing
Cons of hashcat
- Steeper learning curve, requires more technical knowledge to use effectively
- Primarily focused on cracking hashes rather than identifying them
- Command-line interface may be less user-friendly for beginners
Code comparison
Name-That-Hash:
from name_that_hash import hash_namer
results = hash_namer.identify("5f4dcc3b5aa765d61d8327deb882cf99")
print(results)
hashcat:
hashcat -m 0 -a 0 hash.txt wordlist.txt
Key differences
- Purpose: Name-That-Hash is designed for hash identification, while hashcat is for hash cracking
- Ease of use: Name-That-Hash offers a simpler interface for quick hash identification
- Performance: hashcat is optimized for high-speed hash cracking, especially with GPU acceleration
- Functionality: hashcat provides more advanced features for hash cracking, while Name-That-Hash focuses on rapid hash type recognition
Both tools serve different purposes in the realm of hash analysis and cracking, with Name-That-Hash excelling in quick identification and hashcat in powerful cracking capabilities.
John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs
Pros of John the Ripper
- More comprehensive password cracking capabilities, supporting a wide range of hash types and encryption algorithms
- Highly optimized for performance, with support for GPU acceleration
- Extensive community support and regular updates
Cons of John the Ripper
- Steeper learning curve, requiring more technical knowledge to use effectively
- Larger codebase and more complex setup process
- Primarily focused on cracking, rather than quick hash identification
Code Comparison
Name-That-Hash (Python):
def identify_hash(hash_string):
for hash_type, regex in HASH_REGEXES.items():
if re.match(regex, hash_string):
return hash_type
return "Unknown"
John the Ripper (C):
static int crypt_all(int *pcount, struct db_salt *salt)
{
int count = *pcount;
int index;
#ifdef _OPENMP
#pragma omp parallel for
#endif
for (index = 0; index < count; index++)
// Perform hash cracking operations
}
Name-That-Hash is focused on quick hash identification using regex patterns, while John the Ripper implements complex cracking algorithms with performance optimizations. John the Ripper's codebase is more extensive and written in C for better performance, whereas Name-That-Hash is a simpler Python tool designed for ease of use in hash identification tasks.
Hashtopolis - distributed password cracking with Hashcat
Pros of Hashtopolis
- More comprehensive password cracking system with distributed architecture
- Supports multiple hash types and cracking tools
- Actively maintained with regular updates and releases
Cons of Hashtopolis
- More complex setup and configuration required
- Steeper learning curve for new users
- Requires additional infrastructure for distributed cracking
Code Comparison
Name-That-Hash (Python):
def identify_hash(hash_input):
for hash_type, regex in HASH_REGEXES.items():
if re.match(regex, hash_input):
return hash_type
return "Unknown Hash"
Hashtopolis (PHP):
public function getHashType($hash) {
foreach ($this->hashTypes as $type => $regex) {
if (preg_match($regex, $hash)) {
return $type;
}
}
return "Unknown";
}
Both projects use regular expressions to identify hash types, but Hashtopolis is part of a larger system for distributed password cracking, while Name-That-Hash focuses solely on hash identification.
Name-That-Hash is a lightweight tool for quick hash identification, making it easier to use for simple tasks. Hashtopolis, on the other hand, offers a complete password cracking ecosystem with more features and flexibility, but requires more setup and resources.
A tool for automating cracking methodologies through Hashcat from the TrustedSec team.
Pros of hate_crack
- More comprehensive cracking toolset with multiple attack modes
- Integrates with external tools like hashcat for advanced cracking
- Includes wordlist management and rule-based attacks
Cons of hate_crack
- More complex setup and usage compared to Name-That-Hash
- Primarily focused on cracking rather than quick identification
- Requires more system resources for intensive cracking operations
Code Comparison
Name-That-Hash (Python):
def identify_hash(hash_string):
for name, regex in HASH_REGEX_MAP.items():
if re.match(regex, hash_string):
return name
return "Unknown Hash"
hate_crack (Bash):
function hate_crack() {
case $1 in
wordlist) wordlist_mode ;;
bruteforce) brute_force_mode ;;
rules) rule_based_mode ;;
*) usage ;;
esac
}
Summary
Name-That-Hash is a lightweight tool focused on quick hash identification, making it ideal for rapid analysis. hate_crack, on the other hand, is a more comprehensive suite for password cracking, offering various attack modes and integration with external tools. While Name-That-Hash is easier to use and requires fewer resources, hate_crack provides more advanced features for dedicated password cracking tasks.
Crack hashes in seconds.
Pros of Hash-Buster
- Supports online hash cracking services for faster results
- Includes a built-in wordlist for offline cracking attempts
- Can identify hash types automatically
Cons of Hash-Buster
- Less frequently updated (last update in 2019)
- Fewer supported hash types compared to Name-That-Hash
- Limited to Python 2, which is no longer actively maintained
Code Comparison
Hash-Buster:
def crack(hash):
global cracked
try:
response = requests.get('https://lea.kz/api/hash/' + hash).text
match = search(r': \"(.+?)\"', response)
if match:
cracked = match.group(1)
return cracked
except:
pass
Name-That-Hash:
def identify_hash(chash):
"""
identifies a hash from a string
:param chash:
:return:
"""
# Lazy load protobuf
from name_that_hash import hash_namer
return hash_namer.identify(chash)
The code comparison shows that Hash-Buster focuses on cracking hashes using online services, while Name-That-Hash emphasizes hash identification. Name-That-Hash uses a more modular approach with separate functions for identification and cracking, whereas Hash-Buster combines these functionalities.
Name-That-Hash offers a more up-to-date and extensive hash identification system, supporting a wider range of hash types. It also benefits from active maintenance and compatibility with Python 3. However, Hash-Buster's integration with online cracking services and built-in wordlist can be advantageous for quick hash cracking attempts.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
â¡ï¸ Discord | Website ⬠ï¸
The Modern Hash Identification System
pip3 install name-that-hash && nth
Web App with no install needed
ð¤ What is this?
Have you ever come across a hash such as 5f4dcc3b5aa765d61d8327deb882cf99
and wondered what type of hash that is? ð¤
Name-that-hash will name that hash type!
ð¥ Features
- ðº Popularity Ratings - Name that hash will show you the most popular hashes first. In older systems it would prioritise Skype Hash the same as Active Directory's NTLM! Which makes as much sense as saying that my GitHub is as popular as VSCode ð
- â Hash Summaries - no more wondering whether it's MD5 or NTLM. Name-that-hash will summarise the main usage of each hash, allowing you to make an informed & decisive choice â¡
- ð Colour Output - Don't worry, the colours were hand-selected with a designer to be 100% accessible and gnarly ð
- ð¤ JSON output && API - Want to use Name-That-Hash in your project? We are API first, CLI second. Use JSON output or import us as a Python module! ð¾
- ðµ Updated! - HashID was last updated in 2015. Hash-Identifier in 2011! Name-That-Hash is a 2021 project ð¦§
- â¿ Accessible - We are 100% committed to making this an accessible hacking tool ð
- ð« Extensible - Add new hashes as quickly as you can edit this README. No, seriously -- it's that easy! ð±
ð¥ Name-That-Hash vs HashID vs Hash-Identifier
Features | Name-That-Hash | HashID | Hash-Identifier |
---|---|---|---|
Last updated | 2021, check commits. | 17/03/2015 | 30/09/2011 |
Honestly, do you need any more convincing? ð
But, let's look at the features more in-depth.
ð Feature Comparison
Here HashID displays Skype before NTLM, whereas Name-That-Hash understands popularity of hashes so places NTLM before Skype.
ð You can also see Name-That-Hash displaying a summary, whereas HashID doesn't. In the default view it also displays John + HashCat information. Because let's face it, the only reason you're using this tool is to figure out what to put into HashCat! ð±âð
Name-That-Hash is radically different from HashID, I'm not going to list all the differences -- you can physically see them yourselves ð
ð Accessibility
Name-That-Hash is an accessible hacking tool. That means we spent time designing things, such as....
Removing the ASCII Art of very long "least likely" text blocks using --accessible
.
Doing this means you don't get access to least likely, and if the hash is in that pile it'd suck. So we also have --no-banner
.
Which removes the ASCII art banner.
ð¨ Installation
Easy Mode Use our web app at https://nth.skerritt.blog.
You can install using Python's Pip.
pip3 install name-that-hash
or:
pip install name-that-hash
And then run:
nth
To use.
We're also in:
â± Fun Facts
- We have a test-matrix which makes sure all of our hashes are up-to-date, including the HashCat mode and John the Ripper modes!
- Unlike other hash identifiers which identify non-hashes, we have removed these so you'll only get real hashes (base64 who?)
- Each and every hash is tested multiple times, for both false positives and true positives. No mistakes here!
- There is a magical lamp that summons a genie somewhere in the source code.
ð¡ Documentation
Want to learn how popularity works?
What about using this in your own programs?
Or maybe even our commitment to accessibility?
Our documentation is for you!
ð Documentation | ð¦ My Twitter (@ me for questions) | ð³ Discord | 𧩠Web App |
---|---|---|---|
Wiki | https://twitter.com/bee_sec_san | Discord | Web App |
ð Contributing
The easiest way to contribute is by adding more hashes, writing descriptions, or changing their REGEX> All you have to do is go to this file and edit it.
You can read more about contributing here.
ð Thanks
Many thanks to Jabba & Jayyy for their help :)
Thanks to HashID and Hash-Identifier for their work in this field, which heavily inspired this. ð The database of hashes was originally taken from them, but we've significantly modified it. Thank you so much for creating that database of 3000+ hashes ð»
Thanks to the TryHackMe Community too, and especially Oriel for her feedback on early versions.
And special thanks to Varg on his masterful understanding of colour theory ð
Finally, thanks too Blackout for helping write descriptions of hashes ð±âð¤
ðº What people are saying
Contributors â¨
Thanks goes to these wonderful people (emoji key):
Digital Sleuth ð» |
amadejpapez ð ð» |
SkeletalDemise ð» ð§ ð¤ |
Brandon ð» ð§ ð¤ |
Swanand Mulay ð» |
This project follows the all-contributors specification. Contributions of any kind welcome!
Top Related Projects
World's fastest and most advanced password recovery utility
John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs
Hashtopolis - distributed password cracking with Hashcat
A tool for automating cracking methodologies through Hashcat from the TrustedSec team.
Crack hashes in seconds.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot