On 26/11/2013 23:06, TheRandomPast . wrote:
This is my code

import md5
import sys

def chklength(hashes):
     if len(hashes) != 32:
         print '[-] Improper length for md5 hash.'
         sys.exit(1)
characters=range(48,57)+range(65,90)+range(97,122)
def checkPassword(password):
     #print password
     m = md5.new(password)
     if (m.hexdigest() == hash):
         print "match [" + password + "]"
         sys.exit()
def recurse(width, position, baseString):
     for char in characters:
         if (position < width - 1):
             recurse(width, position + 1, baseString + "%c" % char)
         checkPassword(baseString + "%c" % char)
         print "Target Hash [" + hash+ " string: "+ baseString
def brute_force():
     maxChars = 32
     for baseWidth in range(1, maxChars + 1):
         print "checking passwords width [" + `baseWidth` + "]"
         recurse(baseWidth, 0, "")
def dictionary():
     for line in File.readlines():
         checkPassword(line.strip('\n'))
hash =raw_input("Input MD5 hash:")
option=input("Choose method:1=Brute Force; 0=Dictionary")
if(option==1):
     chklength()
     brute_force()
else:
     if(option==0):
         File=open("dict.txt")
         chklength()
         dictionary()
     else:
         print "You picked wrong!"

IT WORKS! ...(Almost) My chklength isn't working. Can anyone see why
not? I'm stumped.


Good to see another cricketer on the list :) Besides that stating "x isn't working" usually doesn't help us to help you. However here it's obvious that you define chklength to take an argument hashes but call it without arguments. You also use raw_input on one line and input on the next, not a good idea. I haven't looked for anything else.

--
Python is the second best programming language in the world.
But the best has yet to be invented.  Christian Tismer

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to