sind habe ich den folgenden Code, der Brute-Force hilft Hashes Die erste if-Anweisung ausgeführt wird, sind die Werte hash=wordlist.txt
, args=abtfg
, values=[0, "0,1", 0, wordlist.txt, true]
Zwei Zeichenketten sind gleich, aber Python sagt sie nicht
def bruteforce(hash, args, values):
if "." in hash:
files = open(values[args.find("f")]) # Open wordlist.txt
for xhsd in files.readlines():
hash = xhsd
alphabet = "abcdefghijklmnopqrstuvwxyz"
alphabet += alphabet.upper() + "!$%^&*(){}~#][;:'@/?.>,<"
if "b" in args: # It is
m = args.find("b")
m = values[m]
else:
m = "0,16"
# m is 0,10
start_time = strftime("%Y-%m-%d %H:%M:%S", gmtime())
l = 0
print("Cracking...")
attempts = 0
while l == 0:
password = ""
for x in range(random.randrange(int(m.split(",")[0])+1,int(m.split(",")[1])+1)): # range(random.randrange(0,10))
password += alphabet[random.randrange(0,len(alphabet)-1)]
num = hash_types[int(values[args.find("t")])] # num="md5"
htype = "hash2 = hashlib."+num+"(password).hexdigest()"
exec(htype) # hash2 = md5(password)
print hash2 + ":" + hash # Compares the hashes
if hash == hash2:
print password
l = 1
else:
print "Trying..."
Das erste Element, um es versucht, es knackt es fast sofort, Drucken:
0cc175b9c0f1b6a831c399e269772661:0cc175b9c0f1b6a831c399e269772661
(das ist Hash2 und Hash). Wir wissen jetzt, dass diese beiden Variablen gleich sind. Die if-Anweisung direkt darunter wird jedoch nicht ausgeführt. Das ist das seltsamste Ding, das ich in Python gesehen habe. Könnte jemand erklären, warum das so ist? Ich habe beide Variablen gedruckt und sie sind eindeutig die gleiche ...
Newline. – user2357112