"Saisissez votre // le message a coder est saisi ici message en espacant avec des points" ?->Str 1 Do "Saisissez votre clef // La clef de chiffrement est saisie ici. elle comporte 10 caractères de chiffrement" ?->Str 2 ClrText StrLen(Str 2)->A LpWhile A!=10 // On teste la validité de la clef (10) 10->Dim List 1 // on crée la liste qui permettra l'encodage 1->B Do "ABCDEFGHIJKLMNOPQRSTUVWXYZ."->Str 3 // le Str 3 permettra de déterminer la position alphabétique d'une lettre StrLeft(Str 2,1)->Str 4 // Dans cette boucle, chaque lettre est prélevée et son emplacement (1-27 StrShift(Str 2,1)->Str 2 // puisque le point sert d'espace et doit etre encodé) est sauvegardé StrSrc(Str 3,Str 4)->C // dans une case de la liste 1 C->List 1[B] // ex: la clef "APOCALYPSE" se transforme en liste {1,16,15,3,1,12,25,16,19,5} Isz B LpWhile B<11 // La boucle se termine lorsque la clef est transformée en liste Str 3->Str 4 // on crée un doublon du "dictionnaire" des lettres StrLeft(Str 1,1)->Str 2 // la premiere lettre du message est prélevée, encodée (addition de sa position StrShift(Str 1,1)->Str 1 // alphabétique et de sa correspondance avec la clef = nouvelle position de lettre StrSrc(Str 3,Str 2)->E // ex: lettre C (3) en premiere position (1) avec la clef APOCALYPSE E+List 1[1]->G // 1+3=4 La lettre C devient D (4) G>=27=>G-27->G StrRotate(Str 4,G)->Str 4 StrLeft(Str 4,1)->Str 6 // ce premier circuit initialise le str 6 2->F Do // la boucle prend ensuite tous les caractères en charge a partir du 2e Str 3->Str 4 StrLeft(Str 1,1)->Str 2 StrShift(Str 1,1)->Str 1 StrSrc(Str 3,Str 2)->E E+List 1[F]->G G>=27=>G-27->G StrRotate(Str 4,G)->Str 4 StrLeft(Str 4,1)->Str 5 StrJoin(Str 6,Str 5)->Str 6 // a ce niveau chaque nouvelle lettre encodée (str 5) vient se rajouter au message codé F=10=>0->F // (str 6) F<10=>Isz F StrLen(Str 6)->H LpWhile H>0 // Le message est complètement encodé lorsque la longueur (StrLen) du message original // devient nulle StrLeft(Str 6,21)->Str 7 StrShift(Str 6,21)->Str 6 // On segmente le Str de sortie pour pouvoir afficher 63 caractères StrLeft(Str 6,21)->Str 8 StrShift(Str 6,21)->Str 6 ClrText "Message encodé! " Locate 1,2,Str 7 // On affiche le message encodé Locate 1,3,Str 8 Locate 1,4,Str 6 Do // Une pression sur "DEL" (Gtk=44) déclenche 0->Z // l'effacement des données et l'arrêt du programme Getkey->A A=44=>Goto 1 LpWhile Z=1 Lbl 1 0->A~Z // On purge les variables utilisées par souci de confidentialité ""->Str 6 ""->Str 7 ""->Str 8 ClrList 1 ClrText Stop