summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2014-08-14 14:34:40 +0300
committerYuval Adam <yuv.adm@gmail.com>2014-08-14 14:34:40 +0300
commit8c377e6c1ad1168cb841addcfe67228c2d843b1a (patch)
treea98383626c6deb692c7d4977ad901c2f93ce6178
parente4c0ed469fdd542ec371c089a4a07d1cc933d3f9 (diff)
Solve s1c3
-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])