|
- import sys
- import string
-
-
- def rotate(x, y):
- return (x - y) % 26
-
-
- def shift(letter, n):
- x = ord(letter) - ord("A")
- y = rotate(x, n)
- return chr(ord("A") + y)
-
-
- def rot13(message):
- message = "".join([x for x in message if x.isalpha()])
- message = message.upper()
- res = ""
- for c in message:
- res += shift(c, 13)
- return res
-
-
- def decrypt(key, message):
- message = "".join([x for x in message if x.isalpha()])
- message = message.upper()
- res = ""
- i = 0
- for c in message:
- x = ord(key[i % len(key)]) - ord("A")
- res += shift(c, x)
- i += 1
- return res
-
-
- def try_with_key(key, message):
- res = decrypt(key, message)
- if "PLEKSZYGLADZ" in res:
- return res
-
-
- def main():
- message = sys.argv[1]
- print(decrypt('N', message))
-
- """
- message = sys.argv[1]
- letters = string.ascii_uppercase
- for a in letters:
- for b in letters:
- for c in letters:
- key = a + b + c
- res = try_with_key(key, message)
- if res:
- print(res)
- print("key:", key)
- return
- """
-
-
- if __name__ == "__main__":
- main()
|