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

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: