Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with open('encrypted_text', 'rb') as file:
- # читать символы нельзя, так как одинаковые байтики могут кастоваться к одному иероглифу
- mes = file.read()
- alphabet = set('qwertyuiopasdfghjklzxcvbnm_')
- key_len = 24
- border = len(mes) // key_len * key_len
- for step in range(0, key_len):
- possible = {i for i in range(0, 256)}
- for b in range(256):
- for index in range(step, border, key_len):
- # print('b = {0}; {1}'.format(b, chr(ord(mes[index]) ^ b)))
- symbol = chr((int(mes[index]) ^ b) % 256)
- if b in possible and symbol not in alphabet:
- possible.remove(b)
- break
- for code in possible:
- print(chr(code), end='')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement