diff options
| -rw-r--r-- | set1/challenge3.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/set1/challenge3.py b/set1/challenge3.py new file mode 100644 index 0000000..8047897 --- /dev/null +++ b/set1/challenge3.py @@ -0,0 +1,12 @@ +x = '1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736' + +def score_plaintext(s): + letters = filter(lambda x: 'a'<=x<='z' or 'A'<=x<='Z', s) + return float(len(letters)) / len(s) + +res = [] +for i in range(256): + chrs = [chr(ord(s) ^ i) for s in x.decode('hex')] + res.append([score_plaintext(chrs), ''.join(chrs)]) + +print(max(res, key=lambda x: x[0])[1]) |
