Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # PyCrack MD5 Hash Cracker
- # Version 1.0.0
- # Coded by BlackMan in Python 3.3.2
- # Download : http://sourceforge.net/projects/md5crack/
- # File : pycrack.py
- #IMPORTS
- import hashlib
- import os
- import sys
- import datetime
- #GLOBAL
- startTime = datetime.datetime.now()
- #DEBUG MESSAGES
- def action(msg) : print('[#] - ' + msg)
- def alert(msg) : print('[+] - ' + msg)
- def error(msg) : print('[!] - ' + msg)
- def errorExit(msg) : raise SystemExit('[!] - ' + msg)
- #MD5 STRING
- def md5(string): return hashlib.md5(string.encode('utf-8')).hexdigest()
- #PERMUTATION BUILDER
- def xpermutation(characters, size):
- if size == 0:
- yield []
- else:
- for x in range(len(characters)):
- for y in xpermutation(characters[:x] + characters[x:], size - 1):
- yield [characters[x]] + y
- #BRUTE FORCE
- def bruteForce(hash):
- attempt = 0
- characters = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')
- maxLength = range(0,25)
- stringBuilder = ''
- for length in maxLength:
- for x in xpermutation(characters, length):
- permutation = stringBuilder + ''.join(x)
- attempt = attempt + 1
- if md5(permutation) == hash:
- end_time = str(datetime.datetime.now() - startTime).split('.')[0]
- print('[' + str(attempt) + '] - ' + permutation + ' - CRACKED! Took ' + end_time)
- input('\nPress the <ENTER> key to EXIT...')
- sys.exit()
- else:
- print('[' + str(attempt) + '] - ' + permutation)
- errorExit('Failed to brute force hash.')
- #START
- if os.name == 'nt' : os.system('cls')
- else : os.system('clear')
- print ''.rjust(56, '#')
- print '#' + ''.center(54) + '#'
- print '# PyCrack MD5 Hash Cracker'.ljust(55) + '#'
- print '# Version 1.0.0'.ljust(55) + '#'
- print '# Coded by InvisibleMan in Python 3.3.2'.ljust(55) + '#'
- print '# Download : http://sourceforge.net/projects/md5crack/'.ljust(55) + '#'
- print '#' + ''.center(54) + '#'
- print ''.rjust(56, '#')
- if sys.version_info.major != 3 or sys.version_info.minor != 3:
- errorExit('Requires Python version 3.3')
- if len(sys.argv) == 2:
- if len(sys.argv[1]) == 32 and sys.argv[1].isalnum():
- bruteForce(sys.argv[1])
- else:
- error('Invalid MD5 hash!')
- errorExit('Usage : pycrack.py [HASH]')
- else:
- error('Missing command line arguments.')
- errorExit('Usage : pycrack.py [HASH]')
Add Comment
Please, Sign In to add comment