Guest User

Untitled

a guest
Apr 23rd, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import sys
  3. import base64
  4. try:
  5. import click
  6. except Exception as e:
  7. print(e)
  8. print("Install click")
  9. sys.exit(-1)
  10.  
  11.  
  12. MAX_KEY_SIZE = 256
  13.  
  14.  
  15. def printBrute(msg, after=None):
  16. for key in range(1, MAX_KEY_SIZE + 1):
  17. try:
  18. attempt = getTranslatedMessage(msg, key)
  19. print('[{:0>3}]'.format(key), after(attempt).decode())
  20. except:
  21. pass
  22.  
  23.  
  24. def getTranslatedMessage(message, key):
  25. result = ""
  26. for char in message:
  27. if char.isalpha():
  28. lower_char = char.lower()
  29. new_ord = chr((ord(lower_char) - ord('a') + key) % 26 + ord('a'))
  30. if char == char.upper():
  31. new_ord = new_ord.upper()
  32. result += new_ord
  33. else:
  34. result += char
  35. return result
  36.  
  37.  
  38. @click.command()
  39. @click.option(
  40. "--key",
  41. "-k",
  42. nargs=1,
  43. type=click.IntRange(0, MAX_KEY_SIZE),
  44. default=13,
  45. help="encrypt message with `key`")
  46. @click.option("--brute", "-b", is_flag=True, help="Bruteforce message")
  47. @click.argument("message")
  48. @click.option("--extra", "-e", nargs=1, type=click.Choice(["base64_after"]))
  49. def cmd(message, brute, key=None, extra=None):
  50. if brute:
  51. if extra == "base64_after":
  52. printBrute(message, base64.b64decode)
  53. else:
  54. print(getTranslatedMessage(message, key))
  55.  
  56.  
  57. if __name__ == '__main__':
  58. cmd()
Add Comment
Please, Sign In to add comment