/HashNinja-Dictionary-Attack-For-Hashes

A fast dictionary attack tool (700,000+ candidates per second), that attacks a supported hash with a user-defined dictionary file's candidates to find the string that matches with its corresponding hash.

Primary LanguagePython

HashNinja: A Dictionary Attack Tool for Hashes

Description & Usage

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 - 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 - Hash Generator

This project was created in Python, for experimental/observational purposes; and can also be aided with my 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

Dependencies to PIP-Install

  • colorama (for colors)
  • termcolor (for colors)

My website: https://TheComputerNoob.com