Guest User

Untitled

a guest
Nov 21st, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. import threading
  2. import hashlib
  3. import random
  4. import string
  5. import time
  6.  
  7. diff = 5
  8. thread_num = 4
  9. calcs = 10**(diff+1) #Stupid rule, please dont use.
  10. threads=[]
  11. h=""
  12.  
  13. def generate_string(diff):
  14. return str(time.time()) + ''.join([random.choice(list(string.ascii_lowercase)) for i in range(2**(10-diff))])
  15.  
  16. def generate_chal(diff):
  17. return ''.join([random.choice(list(string.hexdigits)) for i in range(diff)])
  18.  
  19. def pow(diff, string, chal, r, tn):
  20. n = r[0]
  21. #print("Running in range {0} to {1}".format(r[0],r[1]))
  22. #comp = False
  23. while n <= r[1]:
  24. h_s = string + str(n)
  25. h = hashlib.sha256(h_s.encode('utf-8')).hexdigest()
  26. if str(h)[:diff].upper() == chal.upper():
  27. print [h, h_s, n, tn]
  28. return None, None, None
  29. #comp=True
  30. else:
  31. n += 1
  32. #print("Didnt find any in range {0} to {1}".format(r[0],r[1]))
  33. return None, None, None
  34.  
  35. for i in range(200):
  36. chal = generate_chal(diff) if not h else h[-diff::]
  37. s = generate_string(diff)
  38. for tn in range(thread_num):
  39. t = threading.Thread(target=pow, args=(diff, s, chal, [calcs/thread_num*tn,calcs/thread_num*(tn+1)], tn))
  40. threads.append(t)
  41. t.start()
  42. #print("Proof {0} for {1} with chal {2} generated hash {3} with range {4}".format(n, s, chal, h, r))
Add Comment
Please, Sign In to add comment