Post: [PYTHON] MD5/SHA256 Cracker (EXE & Source)
04-03-2013, 11:30 PM #1
(adsbygoogle = window.adsbygoogle || []).push({}); Made this for someone. It might have bugs, I didnt take any real time to test it. No custom logo or anything. I packed this for you in a exe. It shows as a false positive on Virus Total. Seems that every application I pack with pyInstaller does this. Source is below the download. (dont judge, done in 20 mins.)

    
Download:
https://stankgrounds.com/downloads/hashcrack.zip

Virus Scan:
https://www.virustotal.com/en/file/10bb489e9c09ac8777e473307fb1a974d90a57dd040fef2d91e217601648b59a/analysis/1365031551/


    

import string
import random
import os
import hashlib

def cls():
os.system(['clear','cls'][os.name == 'nt'])

def intro():
print "================================================================="
print str.center("Hash Brute Forcer (Single Thread)", 65)
print str.center("Version 1.0 - Crayawn", 65)
print "================================================================="

def questions():
global hashtype
global hashvalue
global length
global start
try:
print "\nWhat hash type? (md5, sha256)"
hashtype = raw_input().lower()
print "\nHash value to test?"
hashvalue = raw_input()
print "\nLength of Password? (number)"
length = int(raw_input())
print "Start test? (Y/N)"
start = raw_input().lower()
except ValueError:
print "Password length is too large or not a number."
raw_input("Press any key to continue...")
cls()
intro()
questions()

def md5crack(hashvalue, length):
global start
while(start == "y"):
string = ''.join([random.choice('abcdefghijklmnoprstuvwyxzABCDEFGHIJKLMNOPRSTUVWXYZ0123456789'Winky Winky for i in range(length)])
a = hashlib.md5(string).hexdigest()
if(a == hashvalue):
print "Match Found!"
print "Pass: %r" % string
start ="n"
raw_input("Press any key to exit...")

def shacrack(hashvalue, length):
global start
while(start == "y"):
string = ''.join([random.choice('abcdefghijklmnoprstuvwyxzABCDEFGHIJKLMNOPRSTUVWXYZ0123456789'Winky Winky for i in range(length)])
a = hashlib.sha256(string).hexdigest()
if(a == hashvalue):
print "Match Found!"
print "Pass: %r" % string
start ="n"
raw_input("Press any key to exit...")

try:
intro()
questions()
if(start == "Y" or "y"):
if(hashtype == "md5"):
cls()
print "Tested strings for matches. Please wait. This will take a while."
md5crack(hashvalue=hashvalue, length=length)
if(hashtype == "sha256"):
cls()
print "Tested strings for matches. Please wait. This will take a while."
shacrack(hashvalue=hashvalue, length=length)
if(hashtype <> "md5" or "sha256"):
print "Select a usable hash type."
raw_input("Press any key to continue...")
cls()
intro()
questions()
if(start == "N" or "n"):
raw_input("Press any key to exit...")
os._exit(0)
except KeyboardInterrupt:
cls()
print "exiting"


(adsbygoogle = window.adsbygoogle || []).push({});

The following 2 users say thank you to | Crayawn | for this useful post:

ResistTheJamsha, Master Ro
04-03-2013, 11:59 PM #2
Master Ro
I make food
Originally posted by another user
Made this for someone. It might have bugs, I didnt take any real time to test it. No custom logo or anything. I packed this for you in a exe. It shows as a false positive on Virus Total. Seems that every application I pack with pyInstaller does this. Source is below the download. (dont judge, done in 20 mins.)

    
Download:
https://stankgrounds.com/downloads/hashcrack.zip

Virus Scan:
https://www.virustotal.com/en/file/10bb489e9c09ac8777e473307fb1a974d90a57dd040fef2d91e217601648b59a/analysis/1365031551/


    

import string
import random
import os
import hashlib

def cls():
os.system(['clear','cls'][os.name == 'nt'])

def intro():
print "================================================================="
print str.center("Hash Brute Forcer (Single Thread)", 65)
print str.center("Version 1.0 - Crayawn", 65)
print "================================================================="

def questions():
global hashtype
global hashvalue
global length
global start
try:
print "\nWhat hash type? (md5, sha256)"
hashtype = raw_input().lower()
print "\nHash value to test?"
hashvalue = raw_input()
print "\nLength of Password? (number)"
length = int(raw_input())
print "Start test? (Y/N)"
start = raw_input().lower()
except ValueError:
print "Password length is too large or not a number."
raw_input("Press any key to continue...")
cls()
intro()
questions()

def md5crack(hashvalue, length):
global start
while(start == "y"):
string = ''.join([random.choice('abcdefghijklmnoprstuvwyxzABCDEFGHIJKLMNOPRSTUVWXYZ0123456789'Winky Winky for i in range(length)])
a = hashlib.md5(string).hexdigest()
if(a == hashvalue):
print "Match Found!"
print "Pass: %r" % string
start ="n"
raw_input("Press any key to exit...")

def shacrack(hashvalue, length):
global start
while(start == "y"):
string = ''.join([random.choice('abcdefghijklmnoprstuvwyxzABCDEFGHIJKLMNOPRSTUVWXYZ0123456789'Winky Winky for i in range(length)])
a = hashlib.sha256(string).hexdigest()
if(a == hashvalue):
print "Match Found!"
print "Pass: %r" % string
start ="n"
raw_input("Press any key to exit...")

try:
intro()
questions()
if(start == "Y" or "y"):
if(hashtype == "md5"):
cls()
print "Tested strings for matches. Please wait. This will take a while."
md5crack(hashvalue=hashvalue, length=length)
if(hashtype == "sha256"):
cls()
print "Tested strings for matches. Please wait. This will take a while."
shacrack(hashvalue=hashvalue, length=length)
if(hashtype <> "md5" or "sha256"):
print "Select a usable hash type."
raw_input("Press any key to continue...")
cls()
intro()
questions()
if(start == "N" or "n"):
raw_input("Press any key to exit...")
os._exit(0)
except KeyboardInterrupt:
cls()
print "exiting"




No carriage return? :troll:

Nice post :y:
04-04-2013, 12:21 AM #3
Originally posted by Uncle
No carriage return? :troll:

Nice post :y:


agh! Nah.
04-04-2013, 01:27 AM #4
md5 hash cracking is really easy
04-07-2013, 08:30 PM #5
Originally posted by 2010mj View Post
md5 hash cracking is really easy


better to just google the hash in a database. This will go through all random possibilities.
04-17-2013, 02:16 PM #6
Pichu
RIP PICHU.
Originally posted by another user
better to just google the hash in a database. This will go through all random possibilities.


Most hash databases are common dictionary words and or alphabet lists. Sad, the word Boat can be hashed and then Boat1 can be hashed and most databases will not get Boat1 unless you brute it.
04-18-2013, 10:07 AM #7
BornGodz
Do a barrel roll!
Looking good Crayola.

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo