Advertisement
Guest User

Untitled

a guest
Sep 16th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.78 KB | None | 0 0
  1. with open('encrypted_text', 'rb') as file:
  2.     # читать символы нельзя, так как одинаковые байтики могут кастоваться к одному иероглифу
  3.     mes = file.read()
  4. alphabet = set('qwertyuiopasdfghjklzxcvbnm_')
  5. key_len = 24
  6. border = len(mes) // key_len * key_len
  7. for step in range(0, key_len):
  8.     possible = {i for i in range(0, 256)}
  9.     for b in range(256):
  10.         for index in range(step, border, key_len):
  11.             # print('b = {0}; {1}'.format(b, chr(ord(mes[index]) ^ b)))
  12.             symbol = chr((int(mes[index]) ^ b) % 256)
  13.             if b in possible and symbol not in alphabet:
  14.                 possible.remove(b)
  15.                 break
  16.     for code in possible:
  17.         print(chr(code), end='')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement