Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import binascii
- import collections
- scores = {
- 'a': 8.167,
- 'b': 1.492,
- 'c': 2.782,
- 'd': 4.253,
- 'e': 12.702,
- 'f': 2.228,
- 'g': 2.015,
- 'h': 6.094,
- 'i': 6.966,
- 'j': 0.153,
- 'k': 0.772,
- 'l': 4.025,
- 'm': 2.406,
- 'n': 6.749,
- 'o': 7.507,
- 'p': 1.929,
- 'q': 0.095,
- 'r': 5.987,
- 's': 6.327,
- 't': 9.056,
- 'u': 2.758,
- 'v': 0.978,
- 'w': 2.360,
- 'x': 0.150,
- 'y': 1.974,
- 'z': 0.074,
- ' ': 19
- }
- def score(tmp):
- res = 0.0
- for i in tmp:
- chari = chr(i).lower()
- if chari in scores:
- res += scores[chari]
- return res
- def singleByteXorCipher(str1):
- tmp1 = binascii.unhexlify(str1)
- tmp2 = bytearray(len(tmp1))
- maxsc = 0
- maxind = 0
- max = tmp1
- for x in range(0, 256):
- for y in range(len(tmp1)):
- tmp2[y] = tmp1[y] ^ x
- sc = score(tmp2)
- if sc>maxsc:
- maxsc= sc
- max = tmp2
- print (binascii.hexlify(max).decode('ascii'))
- if __name__ == '__main__':
- str1 = input().strip()
- singleByteXorCipher(str1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement