Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def read(filename):
- text = ''
- with open(filename, 'r', encoding='ascii') as f:
- for line in f:
- text += line
- return text
- def encode_text(text, key):
- ans = ''
- for i in range(0,len(text), 24):
- line = text[i:i+24]
- for j, l in enumerate(line):
- ans += xor(l, key[j])
- return (ans)
- def xor(a, b):
- a = ord(a)
- b = ord(b)
- return chr(a^b)
- def get_frequensy(text, i):
- frec = {}
- for sym in text[i::24]:
- if sym in frec:
- frec[sym] += 1
- else:
- frec[sym] = 1
- i = ''
- for t in sorted(frec, key=lambda a: frec[a]):
- i = t
- return i
- def get_word(text, f):
- d = ''
- popular = get_frequensy(text, f)
- for letter in text[f::24]:
- if letter == popular:
- d = xor(popular, '_')
- break
- return(d)
- if __name__ == "__main__":
- text = read('encryptedtext')
- encr_text = encode_text(text, 'qwertyuiopasdfghjklzxcvb')
- decr_text = encode_text(encr_text, 'qwertyuiopasdfghjklzxcvb')
- for i in range(len(text)):
- if text[i] != decr_text[i]:
- raise TypeError(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement