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
Software to identify the different types of hashes -
Quick Overview
Name-That-Hash is a modern hash identification tool written in Python. It can identify over 300 hash types quickly and accurately, making it an essential tool for cybersecurity professionals, CTF players, and anyone working with hashes.
Pros
- Fast and accurate hash identification
- Supports a wide range of hash types (300+)
- User-friendly command-line interface and Python API
- Actively maintained and regularly updated
Cons
- May occasionally misidentify similar hash types
- Requires Python 3.6+ to run
- Limited functionality compared to more comprehensive hash cracking tools
- Not suitable for actual hash cracking, only identification
Code Examples
- Identifying a single hash:
from name_that_hash import runner
hash_to_identify = "5f4dcc3b5aa765d61d8327deb882cf99"
result = runner.api_return_hashes_as_json([hash_to_identify])
print(result)
- Identifying multiple hashes:
from name_that_hash import runner
hashes = ["5f4dcc3b5aa765d61d8327deb882cf99", "098f6bcd4621d373cade4e832627b4f6"]
results = runner.api_return_hashes_as_json(hashes)
for hash_result in results:
print(hash_result)
- Using the command-line interface:
nth -t "5f4dcc3b5aa765d61d8327deb882cf99"
Getting Started
To get started with Name-That-Hash, follow these steps:
-
Install the library using pip:
pip install name-that-hash
-
Import the library in your Python script:
from name_that_hash import runner
-
Use the
api_return_hashes_as_json
function to identify hashes:hash_to_identify = "5f4dcc3b5aa765d61d8327deb882cf99" result = runner.api_return_hashes_as_json([hash_to_identify]) print(result)
Alternatively, you can use the command-line interface by running nth
followed by your options and the hash to identify.
Competitor Comparisons
Software to identify the different types of hashes -
Pros of hashID
- Lightweight and simple to use
- Supports a wide range of hash types
- Can be easily integrated into other scripts
Cons of hashID
- Less actively maintained (last update in 2019)
- Limited features compared to more modern alternatives
- Command-line interface may be less user-friendly for some users
Code Comparison
Name-That-Hash:
from name_that_hash import runner
runner.api_return_hashes_as_dict(["5f4dcc3b5aa765d61d8327deb882cf99"])
hashID:
from hashid import HashID
hashid = HashID()
hashid.identifyHash("5f4dcc3b5aa765d61d8327deb882cf99")
Summary
While hashID is a lightweight and simple tool for hash identification, Name-That-Hash offers a more modern and feature-rich alternative. Name-That-Hash has a more active development community, a user-friendly interface, and additional functionalities like JSON output and integration with other tools. However, hashID's simplicity and ease of integration may still make it a viable option for certain use cases or legacy systems.
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
Software to identify the different types of hashes -
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