Brifing

Comparative Analysis of Password Hash Identification Tools

Testing hashID and Name-That-Hash reveals gaps in recognizing modern hash formats.

1Hash identification challenge

The test compared hashID 3.1.4 and Name-That-Hash 1.11.0 against identical hash samples. Both tools correctly identified $2a$ bcrypt hashes but failed to recognize the $2b$ variant, despite it being Python's default bcrypt prefix since 2014. This reveals a significant gap in handling current hash formats, as $2b$ is now widely used in modern systems. The test was conducted on September 6, 2026, using pip-installed versions of both tools.

2Argon2id recognition gap

Name-That-Hash successfully identified Argon2id strings, the current recommended algorithm for password storage, while hashID returned 'Unknown hash'. This difference stems from hashID's pattern table remaining unchanged since 2015, missing newer algorithms. Argon2id, winner of the Password Hashing Competition, represents modern security practices that hashID doesn't cover, making Name-That-Hash the better choice for contemporary systems.

3MD5 identification results

For a basic MD5 hash of the word 'password', both tools returned multiple possible matches - hashID suggested 18 possibilities while Name-That-Hash listed 24. This demonstrates the inherent challenge in identifying bare hexadecimal strings, where identical output formats can represent different algorithms. The tools can only narrow possibilities, leaving final determination to the user based on system context.

4Empty LM hash case

Testing with the empty LM hash constant (aad3b435b51404eeaad3b435b51404ee) showed both tools returning candidate lists rather than specifically identifying it. This Windows-specific hash format highlights how hash identifiers struggle with context-dependent formats. The tools provide possibilities but can't account for system-specific implementations without additional metadata about the hash's origin.

5Maintenance differences

Name-That-Hash shows better maintenance with more recent format recognition, though both tools share the $2b$ bcrypt gap. hashID's development freeze since 2015 explains its limitations with newer algorithms. While more maintained doesn't mean complete, active development increases the likelihood of supporting emerging standards, making Name-That-Hash preferable for current environments.

6Alternative tools overview

Two other tools - haiti (Ruby-based) and hashcat's --identify option - offer alternative approaches. haiti provides hashcat and John the Ripper references alongside candidates, valuable for cracking workflows. hashcat's built-in identification removes translation steps between tools. However, these weren't tested in this environment due to missing dependencies (Ruby runtime and hashcat build).

7haiti's potential advantages

haiti shows active development with a v4 release in early 2026 and recent commits. Its documentation highlights integration with cracking tools as a key feature. While untested for $2b$ recognition, its maintained status suggests better coverage of modern formats than hashID. As a Ruby gem, it serves users already working with that ecosystem for security toolchains.

8hashcat's direct approach

hashcat's --identify option offers direct algorithm matching using its internal mode numbers, eliminating translation steps between tools. This integration is particularly valuable when identification is just the first step toward cracking. The tool's comprehensive algorithm support likely includes modern formats, though this wasn't verified in the test environment.

9Workflow considerations

For quick identification with context, either pip-installable tool works, with Name-That-Hash preferred for its maintenance. For cracking workflows, using hashcat's built-in identification is most efficient. For recurring identification needs, haiti's cracker-reference output may justify the gem installation. Each tool serves different use cases in the security professional's workflow.

10Historical context

hashID's limitations were noted as early as 2017, with no updates since 2015. This test confirms that simply switching to a maintained tool doesn't automatically address all gaps, as shown by the shared $2b$ recognition failure. The security field's rapid evolution requires tools that keep pace with algorithm developments and changing defaults.

11Practical recommendations

Security teams should use Name-That-Hash for general identification needs due to its better maintenance. For systems using Python's bcrypt, manual verification of $2b$ hashes is necessary. When preparing for cracking, skip standalone identifiers and use hashcat directly. Consider haiti for Ruby environments or when needing integrated cracking references.

12Future-proofing hash identification

The test underscores how quickly hash identification tools can become outdated in the face of evolving security standards. Organizations should establish processes for regularly evaluating their tooling against current systems and algorithms. The $2b$ bcrypt case demonstrates how default changes in common libraries can create identification gaps that tools may not immediately address.

Original article: Darknet – Hacking Tools, Hacker News & Cyber Security — Comparative Analysis of Password Hash Identification Tools