Substitution cipher cracker
Enter ciphertext:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
import document pre = document.getElementById('inputBox') x = pre.value.upper() import string subs = {} tot = len(x) for i in string.letters[26:]: subs[i] = document.getElementById(i).value.upper() if x.count(i): document.getElementById(i + "C").innerHTML = str(round((100.0 / tot) * x.count(i), 2)) + "%" ns = "" for n, i in enumerate(x): if i in subs: if subs[i] != '': ns += subs[i].lower() else: ns += i else: ns += i print ns
import document pre = document.getElementById('inputBox') x = pre.value.upper() letterGoodness = [.0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007] import string combs = zip(letterGoodness, string.letters[26:]) tot = len(x) count = [] for i in string.letters[26:]: if x.count(i): count.append(((1.0 / tot) * x.count(i), i)) else: count.append((0, i)) count.sort(key=lambda x:x[0]) combs.sort(key=lambda x:x[0]) subs = {} for i in zip(count, combs): if i[0][0]: subs[i[0][1]] = i[1][1] ns = "" for n, i in enumerate(x): if i in subs: if subs[i] != '': ns += subs[i].lower() else: ns += i else: ns += i for i in subs.items(): document.getElementById(i[0]).value = i[1].lower() document.getElementById(i[0]).innerHTML = i[1].lower() print ns
Solve
Guess