Seite 1 von 1

ein Neuling, ein Fehler und keine Fehlermeldung

Verfasst: Dienstag 24. April 2018, 15:49
von Wasserglas
Moin :) wie der Titel vllt schon vermuten lässt, bin ich noch recht neu in Python und gerade ziemlich verwirrt :D
Denn ich soll für die Uni ein Brute-Force Programm schreiben, das danach das pw mit einem gegebenen sha1 wert vergleicht, klingt einfach, aber genau da liegt der gepfefferte Hase... Denn genau das vergleichen der beiden sha1 Werte will mein Programm patu nicht machen.
Er gibt mir aber auch keine Fehlermeldung aus. mein BruteForce läuft fröhlich durch die kombinationen und auch wenn das richtige pw dabei ist, ignoriert er das und rennt einfach weiter. So. Ihr seid meine lezte Hoffnung, ich hab langsam keinerlei Ideen mehr.

ich versuche das hier mal einzufügen:

Code: Alles auswählen

import string 
from itertools import product
import hashlib
import itertools

user_password = 'db23fe065e9f857e4cd3398a25299be0bc383c2b' #  test password Ute
found = False

zeichen = itertools.permutations("a-zA-Z0-9") 


for length in range(1, 11): 
    password_to_attempt = product(string.ascii_letters + string.digits, repeat=length)

    for attempt in password_to_attempt:
        attempt = ''.join(attempt) # <- Join letters together
        #print(attempt)


        attempt_sha1 = attempt.encode('utf-8')
        sha_1 = hashlib.sha1()
        sha_1.update(attempt_sha1)
        attempt_sha1 = sha_1.hexdigest()



        print(attempt)        
        print(attempt_sha1)
        print(user_password)
        
        if attempt_sha1 == user_password:
            print("Utes password is: " + attempt)
            found = True    

           
        
    if found:
        break

so. ich hoffe das ist richtig so und ihr habt vllt ne idee :D Lg das Glas

Re: ein Neuling, ein Fehler und keine Fehlermeldung

Verfasst: Dienstag 24. April 2018, 16:12
von Sirius3
@Wasserglas: für mich läuft das Programm.

Und das selbe etwas kompakter:

Code: Alles auswählen

import string 
from itertools import product, chain
import hashlib

user_password = 'db23fe065e9f857e4cd3398a25299be0bc383c2b' #  test password Ute

password_attempts = chain.from_iterable(
    product(string.ascii_letters + string.digits, repeat=length)
    for length in range(1, 11)
)
for attempt in password_attempts:
    attempt = ''.join(attempt)
    attempt_sha1 = hashlib.sha1(attempt.encode('utf-8')).hexdigest()
    if attempt_sha1 == user_password:
        print("Utes password is: ", attempt)
        break

Re: ein Neuling, ein Fehler und keine Fehlermeldung

Verfasst: Dienstag 24. April 2018, 16:24
von Wasserglas
wie es funktioniert? :o
bekommst du auch ne Ausgabe heraus?
Also "Utes pw ist:..."?

das ist ja noch schlimmer,.. dann liegts an meinem mich ärgernden Rechner Oo
aber danke fürs schnelle anschauen :D