Giter Club home page Giter Club logo

hash-breaker's Introduction

Hash-Breaker

What Is This? - Allows you to crack hashes with or without wordlist.

How to Download: Open the terminal on your machine and type the following command:

$ git clone https://github.com/KafetzisThomas/Hash-Breaker.git

Use pip to install the required packages:

$ pip install -r requirements.txt

Features

  • Operates entirely via command-line arguments
  • Supported hash algorithms: Bcrypt, MD5, SHA1, SHA224, SHA256, SHA384, SHA512
  • Dynamic password generation:
    • Generate all possible combinations of characters until a match is found
    • Customize the character set
  • Dictionary support

Usage Notes

To use the script, follow these steps in your terminal:

Example 1: Cracking a hash with a wordlist:

➜ hash_to_crack='$2b$12$.pdcdWnjEA/2GOvHfEfMkupP/BXSsdJjLs5Sh63E0B/5JG/YeB9cu'  # Example Bcrypt hash
➜ wordlist_file=common_passwords.txt  # Path to wordlist file

# Using Hash-Breaker with a wordlist
$ python main.py bcrypt '$hash_to_crack' '$wordlist_path' --wordlist

# Output:
# ...
# Password Found: [ a ]
# Total attempts: 4
# Time elapsed: 3.1s

Example 2: Cracking a hash with dynamic password generation:

➜ hash_to_crack='e1608f75c5d7813f3d4031cb30bfb786507d98137538ff8e128a6ff74e84e643'  # Example SHA256 hash

# Using Hash-Breaker with dynamic password generation
$ python main.py sha256 '$hash_to_crack'

# Output:
# ...
# Password Found: [ tom ]
# Total attempts: 302523
# Time elapsed: 9.3s

Example 3: Using different hash algorithms:

➜ sha512_hash =  # Replace with an example SHA512 hash
➜ sha1_hash =  # Replace with an example SHA1 hash
➜ md5_hash =  # Replace with an example MD5 hash

# Cracking a SHA512 hash
$ python main.py sha512 '$sha512_hash' '$wordlist_file' --wordlist

# Cracking a SHA1 hash
$ python main.py sha1 '$sha1_hash'

# Cracking a MD5 hash
$ python main.py md5 '$md5_hash' '$wordlist_file' --wordlist

Example 4: Customizing the character set for dynamic generation:

➜ hash_to_crack =  # Replace with an example hash

# Using a custom character set for dynamic generation
$ python main.py sha256 '$hash_to_crack' 'atcdIQRsoTpUVZ01m5678' --charset

# Output:
# ...
# Password Found: [ pass1 ]
# Total attempts: 2152264
# Time elapsed: 67.6s

Example 5: Handling errors and understanding the output:

# Incorrect hash algorithm
$ python main.py md4 '$hash_to_crack'

# Output:
# [*] Unsupported hash algorithm: md4

# Invalid wordlist path
$ python main.py md5 '$hash_to_crack' 'invalid_wordlist.txt' --wordlist

# Output:
# [*] Wordlist file not found: invalid_wordlist.txt

Run Tests

cd path/to/script/directory
$ python -m unittest discover tests

Disclaimer: Educational Use Only

Hash-Breaker is an educational tool designed for learning and understanding cryptographic concepts related to hash functions and password security. It is NOT intended for malicious activities, unauthorized access, or any form of unethical use.

By accessing and using Hash-Breaker, you acknowledge and agree to the terms outlined in this disclaimer. The repository owner and contributors are not responsible for any misuse, damage, or legal consequences resulting from the use of this tool.

Please use Hash-Breaker responsibly and for educational purposes only.

hash-breaker's People

Contributors

kafetzisthomas avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

rohimackay

hash-breaker's Issues

Improve Hash-Breaker Documentation

This issue proposes a significant enhancement to the Hash-Breaker documentation by adding a comprehensive section dedicated to practical usage examples, presented in a clear and concise terminal-like format.

Current Issues:

  • Lack of Concrete Examples: The current documentation primarily focuses on theoretical explanations of features and command-line arguments. It lacks the practical guidance provided by concrete usage examples.
  • Difficulty for Beginners: New users often struggle to grasp the tool's functionality and how to use it effectively due to the lack of practical demonstrations.
  • Inconsistent Documentation Style: The current documentation lacks a consistent style, making it difficult for users to quickly find and understand the information they need.

Proposed Changes:

Inspired by the comprehensive and user-friendly approach used by The Fuck, we propose a dedicated "Usage Examples" section within the README.md file, using a terminal-like format to illustrate the tool's capabilities:

Example 1: Cracking a hash with a wordlist:

➜  hash_to_crack=e10adc3949ba59abbe56e057f20f883e  # Example MD5 hash
➜  wordlist_file=common_passwords.txt          # Path to wordlist file

# Using Hash-Breaker with a wordlist
➜  python main.py MD5 "$hash_to_crack" "$wordlist_file" --with-wordlist

# Output:
# ...
# Password found!
# Cracked password: password

Example 2: Cracking a hash with dynamic password generation:

➜  hash_to_crack=5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8  # Example SHA256 hash

# Using Hash-Breaker with dynamic password generation
➜  python main.py SHA256 "$hash_to_crack"

# Output:
# ...
# Generating passwords... 
# ...
# Password found!
# Cracked password: secret123

Example 3: Using different hash algorithms:

➜  bcrypt_hash=  # Replace with an example Bcrypt hash
➜  sha1_hash=   # Replace with an example SHA1 hash
➜  md5_hash=    # Replace with an example MD5 hash

# Cracking a Bcrypt hash
➜  python main.py Bcrypt "$bcrypt_hash" "$wordlist_file" --with-wordlist 

# Cracking a SHA1 hash
➜  python main.py SHA1 "$sha1_hash" 

# Cracking an MD5 hash 
➜  python main.py MD5 "$md5_hash" "$wordlist_file" --with-wordlist 

Example 4: Customizing the character set for dynamic generation:

➜  hash_to_crack=  # Replace with an example hash

# Using a custom character set for dynamic generation
➜  python main.py SHA256 "$hash_to_crack" --charset "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

# Output:
# ...
# Generating passwords using custom character set...
# ...
# Password found!
# Cracked password: MySecretPass

Example 5: Handling errors and understanding the output:

# Incorrect hash algorithm
➜  python main.py MD4 "$hash_to_crack"

# Output:
# Error: Unsupported hash algorithm: MD4

# Invalid wordlist path
➜  python main.py MD5 "$hash_to_crack" "invalid_wordlist.txt" --with-wordlist

# Output:
# Error: Wordlist file not found: invalid_wordlist.txt

Benefits:

  • Improved User Experience: The addition of comprehensive usage examples will significantly enhance the user experience by providing practical guidance and demonstrating the tool's capabilities.
  • Increased Clarity: Clear and concise examples will help users understand how to use the tool's features effectively and solve specific cracking problems.
  • Enhanced Learning: Beginners will benefit from the practical examples as they gain a better understanding of hash cracking concepts through hands-on learning.
  • Improved Documentation Consistency: A consistent terminal-like style will make the documentation easier to read and understand.

This issue aims to elevate Hash-Breaker's documentation to a new level of clarity, organization, and user-friendliness, ultimately making the tool more valuable to its users.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.