Ataque de diccionario en hashes SHA-1 [cerrado]

0

El siguiente es un código Python para romper el hash SHA1. Este código no parece funcionar.

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()

La salida que obtuve: -

 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 Soy principiante cuando se trata de codificación. Por favor, ayúdame a arreglar este código.

    
pregunta Kiran Vasu 17.04.2018 - 02:24
fuente

2 respuestas

2

Probablemente no sea el lugar para esta pregunta. Ya que es una cosa de seguridad de la información, pero bueno que lo intentes.

El error FileNotFound básicamente dice que no se encuentra ningún archivo. Python está buscando el archivo dictionary.txt en el directorio C:/Users/kiran/AppData/Local/Programs/Python/Python37/Codes/ , y no pudo encontrarlo.

En una nota 'no tan infosec', debe tener una declaración de retorno dentro del bloque if, pero no en el bloque for. De esa manera, el programa se detiene después de que se encuentra un hash. La forma en que se escribe su código, el programa terminará después de la primera iteración del bucle 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
    
respondido por el keithRozario 17.04.2018 - 04:44
fuente
0

Compruebe si hay un archivo con el nombre dictionary.txt en el mismo directorio.

Consejo: usa los servicios en línea para descifrar hashes :)

    
respondido por el Hijack 17.04.2018 - 02:34
fuente

Lea otras preguntas en las etiquetas