s = "CRKQDEIVPIMPAIXZNONYTJUSWIKSLUSEAQGFWMAYBOHUUVAMZTVICKYQURVKJHIUTEFHIATEYLBEDXCMWRPOIAYZXALIRGESSSTOLPBEARYPEPHNJTZEYLUXHJHHDIOMQUYUTYXIGNSHOTTEANOCEMFXOBELMWDNUFUGHJINUCPIOHSGJTXONAIPCWWPFDRIXOPMBPOVEWOPYILQLGATOZEUDXXHIUVQUZQPFJ"
ds = ('ZERO', 'UN', 'DEUX', 'TROIS', 'QUATRE', 'CINQ', 'SIX', 'SEPT', 'HUIT', 'NEUF')
# for x in range(13):
# for y in range(16):
# for z in range(19):
# r = ""
# for i, c in enumerate(s):
# if (i + 1) % 13 == x or (i + 1) % 16 == y or (i + 1) % 19 == z:
# r += c
# if sum(1 if d in r else 0 for d in ds) >= 5:
# print(r)
# REPONSEQUATRETROISSEPTHUITNEUFSTOPOOEGZXZQ
from itertools import permutations
s = "ROZUFIZZKCDSYYMYLPNOOVYEBZWPACRZPAOXDYANYNOZQZQRJXGJQMIHDO"
t = "#-+$??=?#>>-%#=%$->%?-*@@#$****=$#?==##=%*=$#+??#=*#-@+@=#"
# for _s in permutations("0123456789", r=5):
# dct = dict(zip("#-+$?=", _s))
# msg = ''.join(chr((ord(c) - 65 + int(dct[t[i]])) % 26 + 65) for i,c in enumerate(s))
# print(msg)
# VOICILECODESECRETPOURVALIDERCETEXERCICESEPTHUITUNCINQTROIS
s = "GUCLLAUMPLLGXBOEJZAVVVNQZUIJPMTEEIDNDNOKTNLMHFKNKPAERZRZGLREOCCJRMLYOFNEDETZZMSDEVZCVOISURIMSETMERHMYYWJNPTBTMBVTXIQETOTPBM"
def decipher(s, p):
r = ""
i, j = 0, 0
while i < len(s) and j < 6:
i += p[j]
if i >= len(s):
return ""
r += s[i]
i, j = i + 1, (j + 1) % 6
r += s[-1]
return r
for p in permutations(range(6)):
r = decipher(s, p)
print(r)
# ALLEZVITEDONNERLECODESECRETMYNBIQPMM
def decipher(ciphertext: str, key: list[int]) -> str:
n = len(ciphertext)
# expand key cyclically to length n
key_seq = [ key[i % len(key)] for i in range(n) ]
S = [] # current message after successive reverse insertions
# process removed letters in reverse order
for i in range(n-1, -1, -1):
L_before = len(S) + 1
pos = (key_seq[i] - 1) % L_before # wrap if key > L_before
S.insert(pos, ciphertext[i])
return ''.join(S)
# s = "ROZUFIZZKCDSYYMYLPNOOVYEBZWPACRZPAOXDYANYNOZQZQRJXGJQMIHDO"
# t = "#-+$??=?#>>-%#=%$->%?-*@@#$****=$#?==##=%*=$#+??#=*#-@+@=#"
# for _s in permutations("0123456789"):
# dct = dict(zip("+-#$?>=*%@", _s))
# msg = ''.join(chr((ord(c) - 65 + int(dct[t[i]])) % 26 + 65) for i,c in enumerate(s))
# if sum(1 if d in msg else 0 for d in ds) == 5:
# print(msg)
# VOICILECODESECRETPOURVALIDERCETEXERCICESEPTHUITUNCINQTROIS
def decipher(ciphertext: str, key: list[int]) -> str:
n = len(ciphertext)
# expand key cyclically to length n
key_seq = [ key[i % len(key)] for i in range(n) ]
S = [] # current message after successive reverse insertions
# process removed letters in reverse order
for i in range(n-1, -1, -1):
L_before = len(S) + 1
pos = (key_seq[i] - 1) % L_before # wrap if key > L_before
S.insert(pos, ciphertext[i])
return ''.join(S)
s = "TENRRMNSREIEOEPIRSROQIOTNUDNCSELENEPULEATMSOFEAERODLDRUSCIAILTUEBXUXSVLEAVREJTE"
for key in permutations(range(1, 27), r = 5):
msg = decipher(s, key)
if sum(1 if d in msg else 0 for d in ds) == 5:
print(msg)
#LAREPONSEAFOURNIRESTLENOMBRESIXTROISCINQUNDEUXELLEVOUSPERMETTRADEVALIDERCESUJET
To embed this program on your website, copy the following code and paste it into your website's HTML: