Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.71 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3.  
  4. #astea sunt librarii pe care le importi ca sa iti mearga urmatoarele lucruri: Hash-urirea (adica sa decriptezi parola)
  5. #pentru threaduri (adica mai multe fire de executie)
  6. #pentru timp (aici, cand il foloseam in program, acum nu il mai folosesti)
  7. #config - ai un fisier separat cu 2 variabile. findFlag si result : in findFlag ai ori true ori false daca a gasit sau nu parola.
  8. # si in result memorezi
  9.  
  10. import hashlib
  11. import threading
  12. import time
  13. import config
  14.  
  15. # aici ai parola care trebuie decriptata si in linia urmatoare faci toate caracterele ei (vezi ca sunt majuscule) in litere mici.
  16. passwordToHack = '9F4120757968E8323904848F05C8B32511FFA9BBF5655BE737A6F03AE28047B6'
  17. passwordToHack = passwordToHack.lower()
  18.  
  19. #ai clasa myThread care mosteneste threading.Thread. Clasa asta, threading.Thread, e facuta de aia de la Python, adica e implicita
  20. #si are printre altele metoda run (tu o suprascrii mai jos, ca sa folosesti in ea algoritmul SHA256 - asta iti decripteaza parola)
  21. # In __init__ -> asta e constructorul, iti initalizeaza membrii clasei (threadId, name, startNumber, endNumber).
  22. #Self refera spre obiectul curent, cum e this in C++
  23.  
  24. class myThread (threading.Thread):
  25.    def __init__(self, threadID, name, startNumber, endNumber):
  26.       threading.Thread.__init__(self)
  27.       self.threadID = threadID
  28.       self.name = name
  29.       self.startNumber = startNumber
  30.       self.endNumber = endNumber
  31.  
  32.    def run(self):
  33.       print ("Starting " + self.name)
  34.       rangeSha256Algorithm(self.startNumber, self.endNumber, self.name)
  35.  
  36.  
  37. #algoritmul pentru descriptare. Ni l-a dat el / sau a zis sa il luam de pe net
  38. def rangeSha256Algorithm (startNumber,endNumber,threadName):
  39.    for i in range(startNumber-1,endNumber):
  40.       myHash =  hashlib.sha256(bytes(str(i), encoding='utf-8')).hexdigest()
  41.       if myHash == passwordToHack or config.findFlag == True:
  42.          if config.findFlag == True:
  43.             print ("Stoping  %s" % (threadName))
  44.             break
  45.          config.result = i
  46.          print ("Stoping  %s" % (threadName))
  47.          config.findFlag = True
  48.          break
  49.  
  50. # o lista de threaduri in care retii fiecare thread
  51. threads = []
  52.  
  53. #aici ii atribui fiecarui thread un interval pe care sa lucreze si dai start la threaduri
  54. for i in range(1,37):
  55.    startNumber = round(float(10000000) + float(i - 1) * (float(89999999) / float(42)))
  56.    endNumber = round(float(10000000) + float(i) * (float(89999999) / float(42)))
  57.  
  58.    name = "Thread-"+ str(i)
  59.    threads.append(myThread(i, name, startNumber, endNumber))
  60.  
  61.    threads[i-1].start()
  62.  
  63. # asta face tot, fara asta nu merge :)), practic e executia
  64. for t in threads:
  65.    t.join()
  66. print ("Exiting Main Thread")
  67.  
  68. print (config.result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement