Guest User

Untitled

a guest
Feb 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. # !/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import time
  5. from time import time
  6.  
  7. import sys
  8. from sys import maxsize
  9.  
  10. import itertools
  11. from itertools import chain
  12. from itertools import product
  13.  
  14. CHAR_BANK = []
  15. # min letters
  16. CHAR_BANK += [chr(97 + x) for x in range(26)]
  17. # maj letters
  18. CHAR_BANK += [chr(65 + x) for x in range(26)]
  19. # numbers
  20. CHAR_BANK += [chr(48 + x) for x in range(10)]
  21. # chars
  22. CHAR_BANK += [chr(33 + x) for x in range(13)]
  23. CHAR_BANK += [chr(58 + x) for x in range(6) ]
  24. CHAR_BANK += [chr(91 + x) for x in range(5) ]
  25. CHAR_BANK += [chr(123+ x) for x in range(3) ]
  26.  
  27. TO_BREAK = 'toto'
  28.  
  29. def brute_force() :
  30. """
  31. """
  32. return (''.join(CHAR_BANK)
  33. for CHAR_BANK in chain.from_iterable(product(CHAR_BANK, repeat=i)
  34. for i in range(1, maxsize)))
  35.  
  36. def main() :
  37. """
  38. """
  39. tries = 0
  40. beg = time()
  41.  
  42. for generated in brute_force():
  43. tries += 1
  44. if tries % 1000 == 0 :
  45. print ('{} tries reached'.format(tries))
  46. if generated == TO_BREAK :
  47. break
  48.  
  49. print ('Password "{}" found in {} tries and {} ms !'
  50. .format (
  51. generated,
  52. tries,
  53. time() - beg
  54. ))
  55.  
  56. if __name__ == '__main__':
  57. main ()
Add Comment
Please, Sign In to add comment