/Password-Cracker-Multiprocessing-

Password Cracker is a password cracking tool written in Python that utilizes multiprocessing for both brute force and dictionary attacks,

Primary LanguagePython

purpose license

PASSWORD CRACKER

The password cracker uses by default, first, dictionary attack and second, brute force attack. To work this one requires a hash to crack and the type of hash used

(Possibility of using multiple processors)

REQUIRED

Python 3.6 minimum

USAGE

For crack a password with dictionary attack AND brute force attack:

$ python cracker.py -p hash -t typeOfHash

or:

$ python cracker.py -p hash -t typeOfHash -f [pathToDictionary] -b

For generate a hash from a password:

$ python cracker.py -g -p password -t typeOfHash

CONFIGURATION

GENERAL CONFIGURATION

Argument Definition DEFAULT VALUE REQUIRED
-h / --help Show the help message and exit - -
-p / --password Hash to find OR password to generate - +
-t / --type Type of hash desired (Hash available = md5, sha224,sha256, sha384 and sha512) - +
-c / --process Number of processes to use for cracking 2 -
--time Displays the execution time - -

DICTIONARY ATTACK CONFIGURATION

Argument Definition DEFAULT VALUE REQUIRED
-f / --file Launches the dictionary attack. Can take as argument the path of a file containing a list of words lstWord.txt (word list provided with the project) -

BRUTE FORCE ATTACK CONFIGURATION

Argument Definition DEFAULT VALUE REQUIRED
-b / --brute Launches brute force attack - -
-m / --maximum Maximum number of characters of the password 10 -

GENERATE HASH CONFIGURATION

Argument Definition DEFAULT VALUE REQUIRED
-g / --generate Starts hash generation - -

EXAMPLE USAGE

Launch of a brute force attack with a password of a maximum length of 5 characters, hashed in SHA224, with the help of 6 processors and display of the cracking time:

$ python cracker.py -b -m 5 -c 6 -p bdd03d560993e675516ba5a50638b6531ac2ac3d5847c61916cfced6 -t sha224 --time

launch of a dictionary attack (with dictionary by default), with a password hashed in md5, with the help of 8 processors and display of the cracking time:

$ python cracker.py -f -c 10 -p bdd03d560993e675516ba5a50638b6531ac2ac3d5847c61916cfced6 -t md5 --time

ALGORITHM EXPLANATION

Dictionary attack (single processor):

The program browses the list of word of the file from the first to the last word and compares the hash of the password provided in parameter with the hash of the words contained in the file

Dictionary attack (multiprocessor):

The number of words contained in the file is divided by the number of processors. Each processor browses a unique portion of the file.

Brute Force attack (single processor):

The program incrementally generates a word to try. Starting with a length of 1 up to the maximum length requested by the user (default value: 10)

Brute Force attack (multiprocessor):

Each character of the first four characters of the word to be tested is managed by a processor. For the following characters, the available character lists are divided by the number of processors requested by the user. Each processor will try to find the password in its available character portion. (example: processor 1 will try from 'aaaaa' to 'faaaa', processor 2 will try to: 'faaaaa' to 'maaaaa', etc...)

DEMO

Warning

The program is specially designed to test only YOUR own passwords / hashs, for the legitimate purpose of knowing the strength of your passwords.

You will therefore be fully responsible for any unauthorized use of this program.