Aller au contenu

Decodage secret


Messages recommandés

  • E-Bahut
Posté(e)

Bonsoir,

Moi, je ne me suis pas posé de problème métaphysique. Celui qui code doit respecter le mode de chiffrage mots en majuscules séparés par un espace, et déchiffrage provenant d'un chiffrage réglementaire. Partant de là, j'aboutis à cela

codage pas terminé, j'ai considéré séparément les deux cas, aller et retour (j'avais envisagé un passage aléatoire entre les deux, à venir ?) :

D=input("Entrez le message à coder en majuscules en séparant"+"\n"+"les noms par un espace"+"\n")
#D="DEUX FOIS TROIS EGAL SIX"
l=len(D)
L=[]
L1=[]
for i in range(0,l):
    if D[i]==" ":
        c=-1
    else:
        c=2*ord(D[i])-126
    L.append(c)
for i in range(0,len(L)):
    if L[i]==-1:
        print(" ",end="")
    else:
        if L[i]<10:
            print("0"+str(L[i]),end="")
        else:
            print(L[i],end="")
print("")
for i in range(0,l):
    if D[i]==" ":
        c=-1
    else:
        c=184-2*ord(D[i])
    L1.append(c)
for i in range(0,len(L)):
    if L1[i]==-1:
        print(" ",end="")
    else:
        if L1[i]<10:
            print("0"+str(L1[i]),end="")
        else:
            print(L1[i],end="")

décodage

D0=input("Entrez le message codé en séparant"+"\n"+"les groupes de chiffres par un espace"+"\n") 
#D0="48461408 44263818 1620263818 46425432 183808"
#D0="362606461408 28264632"
l=len(D0)
D=""
L=[]
for i in range(0,l):
    if D0[i]==" ":
        D=D+"  "
    else:
        D=D+D0[i]
l=len(D)

for i in range(0,l-1,2):
    if D[i]==" ":
        c=-1
    else:
        c=int(D[i]+D[i+1])//2-1
    L.append(c)
for i in range(0,len(L)):
    if L[i]==-1:
        print(" ",end="")
    else:
        print(chr(26+65-L[i]),end="")
print("")
for i in range(0,len(L)):
    if L[i]==-1:
        print(" ",end="")
    else:
        print(chr(64+L[i]),end="")

Pour ce soir, ça s’arrête là. A demain, si vous le voulez bien (ça rappelle quelque chose à quelqu’un ?)

  • E-Bahut
Posté(e)

Bonjour,

Comme promis, codage avec un passage aléatoire entre aller et retour:

import random
D=input("Entrez le message à coder en majuscules en séparant"+"\n"+"les noms par un espace"+"\n")
#D="DEUX FOIS TROIS EGAL SIX"
l=len(D)
L=[]
for i in range(0,l):
    if D[i]==" ":
        c=-1
    else:
        if  random.randint(0, 1)==0:
            c=2*ord(D[i])-126
        else:
            c=184-2*ord(D[i])
    L.append(c)
for i in range(0,len(L)):
    if L[i]==-1:
        print(" ",end="")
    else:
        if L[i]<10:
            print("0"+str(L[i]),end="")
        else:
            print(L[i],end="")

A tester avec mon décodage précédent. Pour avoir le bon message, il faudra jongler entre les deux lignes pour trouver ce qui va bien. Exemple :
DEUC FORS GIOIS ETZL HRC
WVFX ULIH TRLRH VGAO SIX

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...
spam filtering
spam filtering