Attacco dizionario sugli hash SHA-1 [chiuso]

0

Quello che segue è un codice Python per decifrare l'hash SHA1. Questo codice non sembra funzionare.

import hashlib
# plug in the hash that needs to be cracked
hash_to_crack = "7c4a8d09ca3762af61e59520943dc26494f8941b"
# open the dictionary file
dict_file = "dictionary.txt"

def main():
    with open(dict_file) as fileobj:
        for line in fileobj:
            line = line.strip()
            if hashlib.sha1(line).hexdigest() == hash_to_crack:
                print ("Successfully cracked the hash %s: It is %s") % (hash_to_crack, line);
            return ""
print ("Failed to crack the file.")

if __name__ == "__main__":
    main()

L'output che ho ottenuto: -

 RESTART: C:/Users/kiran/AppData/Local/Programs/Python/Python37/Codes/datest1.py 
Traceback (most recent call last):
  File "C:/Users/kiran/AppData/Local/Programs/Python/Python37/Codes/datest1.py", line 17, in <module>
    main()
  File "C:/Users/kiran/AppData/Local/Programs/Python/Python37/Codes/datest1.py", line 8, in main
    with open(dict_file) as fileobj:
FileNotFoundError: [Errno 2] No such file or directory: 'dictionary.txt'

P.S Sono principiante quando si tratta di programmare. Per favore aiutami a correggere questo codice.

    
posta Kiran Vasu 17.04.2018 - 02:24
fonte

2 risposte

2

Probabilmente non è il posto giusto per questa domanda. Dal momento che si tratta di una cosa di Info Security, ma buona cosa stai provando.

L'errore FileNotFound sta fondamentalmente dicendo che non è stato trovato alcun file. Python sta cercando il file dictionary.txt nella directory C:/Users/kiran/AppData/Local/Programs/Python/Python37/Codes/ e non è stato in grado di trovarlo.

Su una nota 'not so infosec', dovresti avere un'istruzione return nel blocco if, ma non nel blocco for. In questo modo, il programma si ferma dopo aver trovato un hash. Il modo in cui il tuo codice è scritto, il programma terminerà dopo la prima iterazione del ciclo for.

def main():
    with open(dict_file) as fileobj:
        for line in fileobj:
            line = line.strip()
            if hashlib.sha1(line).hexdigest() == hash_to_crack:
                print ("Successfully cracked the hash %s: It is %s") % (hash_to_crack, line);
                return  # returns after a hash is foud

    print ("Failed to crack the file.")
    return  # returns if all hashes in dictionary.txt is exhausted
    
risposta data 17.04.2018 - 04:44
fonte
0

Controlla se c'è un file con nome dictionary.txt nella stessa directory.

Consigli: usa i servizi online per decrittografare gli hash:)

    
risposta data 17.04.2018 - 02:34
fonte

Leggi altre domande sui tag