Dhruv Toshniwal

MD5Cracker: A Scalable Distributed Password Recovery System

December 2022

MD5Cracker: A Scalable Distributed Password Recovery System

Introduction

Distributed systems offer improved performance, scalability, and fault tolerance. This project explores a distributed system designed to crack MD5 hashes for 5-character alphabetical passwords using a brute force approach.

Problem Statement and Learning Outcomes

The primary goals of the project were to:

  • Create a scalable distributed system for cracking MD5 hashes
  • Distribute workload among multiple worker nodes
  • Provide insights into:
    • Distributed system implementation
    • REST API design
    • Single-page application deployment
    • SSH tunneling
    • Client-server connection maintenance

Design and Setup

The system architecture features:

  • Server-client interaction model
  • Resources from the GENI network
  • React frontend deployed on the web
  • Password cracker server running on GENI

Execution and Results

Technical Setup

  • Python 3.7
  • Flask 2.2.2
  • Ngrok
  • 1 server and 10 clients on a GENI slice

Metrics and Analysis

The experiment was run 50 times, analyzing:

  • Total time to break a hash
  • Total file processing time

Key findings:

  • Password cracking time decreases with:
    • More clients
    • Increased bandwidth

Conclusion

The project demonstrates the power of distributed systems in efficiently cracking MD5 hashes. By leveraging a user-friendly web interface and effective workload management, the system showcases improved performance and scalability.

Additional Resources