summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--set1/challenge3.py12
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])