Dictionary Attack Hashes with HashNinja!

Here’s HashNinja, a high-speed & unique multithreaded dictionary attack implementation that attacks a supported hash with a “chunkified” user-defined dictionary file to find the string candidate that corresponds to the supplied hash.

Example execution of HashNinja.

Supported Hashing Algorithms

  • BLAKE2b
  • BLAKE2s
  • MD5
  • SHA-1
  • SHA-2 (224-bit)
  • SHA-2 (256-bit)
  • SHA-2 (384-bit)
  • SHA-2 (512-bit)
  • SHA-3 (224-bit)
  • SHA-3 (256-bit)
  • SHA-3 (384-bit)
  • SHA-3 (512-bit)
  • SHAKE-128
  • SHAKE-256

Hash Generator: String → Hash Converter (for tests)

HashNinja also comes with a “Hash Generator” program that converts a user-input string to a hash of the selected hashing algorithm, and then automatically copies the generated hash to the clipboard; mainly for the purpose of testing HashNinja conveniently.

Example execution of the hash generator.

This project was created in Python, for experimental/observational purposes; and can also be aided with our own super fast numbered dictionary generator NumNinja (up to 2M+ lines per second) for numeric attacks.

Optimization

The high hash-matching speed is owed to the approach of “chunkifying” the dictionary file (creating multiple “chunks” of the dictionary) and then operating upon all those simplified chunks concurrently (multithreading) in different directions (forward and backward) for significantly higher overall balance, efficiency and performance.

Approaches: Regular Vs. Multithreaded

2 comments

  1. I’m at work browsing your website. Just wanted to say I love reading through your stiff and look forward to all your posts carry on the superb work!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.