Code Monkey home page Code Monkey logo

hpc-password-cracker's Introduction

HPC Password Cracker

Build Status License: MIT

Purpose

The HPC Password Cracker project is a password cracker that supports OpenMPI, Open MP technologies. Passwords values provided at the command line are expected to be hashed values using sha256sum encryption.

How to hash a password for testing

echo -n 'test' | sha256sum

Compilation Notes

  1. Be certain to install the libssl-dev package prior to compilation. On Ubuntu: sudo apt-get install libssl-dev

  2. Run make clean between implementations to ensure the appropriate binaries are available for each individual implementation.

Serial Implementation

How to compile:

Run make: make serial

How to run dictionary attack:

Pass in the full path of the dictionary file.

./bin/serial-cracker --dictionary dictionary_files/100_pass.txt --password $(echo -n '123456' | sha256sum) --verbose

or using short option names:

./bin/serial-cracker -d dictionary_files/100_pass.txt -p $(echo -n '123456' | sha256sum) -v

How to run brute force attack:

./bin/serial-cracker --bruteforce --lowercase --uppercase --numbers --symbols -p $(echo -n 'test' | sha256sum) --verbose

or using short option names:

./bin/serial-cracker -bluns -p $(echo -n 'test' | sha256sum) -v

Parallel Implementation - MPI

How to pre-split files for MPI dictionary attack:

Provide the number of lines per file. (E.g., With four processes and 100 passwords, we need four files. Divide the 100 passwords evenly into 25 per file.)

mkdir -p temp && split -d -l 25 dictionary_files/100_pass.txt temp/file_

Note: A current limitation here is the need to have the number of passwords even divisible by the number of processes.

How to compile:

Run make: make mpi

How to run dictionary attack:

Pass in the "temp" directory for the location of the split files to be processed across processes.

mpirun -np 4 ./bin/mpi-cracker -d temp -p $(echo -n '123456' | sha256sum) -v

How to run brute force attack:

mpirun -np 4 ./bin/mpi-cracker -bluns -p $(echo -n 'test' | sha256sum) -v

Parallel Implementation - OpenMP

How to compile:

Run make: make omp

How to run dictionary attack:

Pass in the full path of the dictionary file.

OMP_NUM_THREADS=4 ./bin/omp-cracker -d dictionary_files/100_pass.txt -p $(echo -n '123456' | sha256sum) -v

How to run brute force attack:

OMP_NUM_THREADS=4 ./bin/omp-cracker -bluns -p $(echo -n 'test' | sha256sum) -v

Parallel Implementation - CUDA

Experemental: Only available for Brute Force attack. Also, in its current state, this solution is unoptimized and is not much faster than the serial version.

How to compile:

Run make: make cuda

How to run brute force attack:

./bin/cuda-cracker -bluns -p $(echo -n 'test' | sha256sum) -v

Install MPI on Ubuntu

Run from command line: sudo apt install libopenmpi-dev

Authors

  • Donna Harris
  • Ma Luo
  • Will Anderson

hpc-password-cracker's People

Contributors

donnajharris avatar maluo avatar wandersonca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

hpc-password-cracker's Issues

Password

Hello, I can't find your password to download libssl-dev package. Could you write it to me?

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.