Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 18-12-2008 23:59:53

Lutcho74
Invité

[Basic puis Python] Programmer un un programme de crypt

Voilà je m'y connait un peu en programmation mais que en basic...
Je connaissait la cryptologie depuis longtemps mais je n'avait jamais aprofondit...

Donc la je commence a me documenter et j'ai trouver votre site et ce forum.
J'ai besoin d'aide pour pouvoir faire un piti programme de cryptage, donné moi seulement comment rentré un algorithme ou un décalage etc...,comment le "décomposé"

Je ne demande pas de code car je programme avec un freeware qui n'est pas complètement égale au basic en soit mais les commande y ressemble vraiment...

#2 20-12-2008 00:13:05

SEGURA
Invité

Re : [Basic puis Python] Programmer un un programme de crypt

Ton message est déjà presque cryptographié: au vu du nbre de fautes d' AURTOGRAPHE de ton message ! Toutefois, voici quelques tuyaux:

      - Légaux: La loi française impose de tenir à disposition de la justice les clés de chiffrement de tout prgm (programme informatique ou autre). Cela doit dater de l' autorisation de passage du cryptage de 64 à n bit.

      - Le basic et ses similaires ne sont pas vraiment des logiciels intéressants: aucune sécurité, langage interprété, donc très lents. Pour ce genre d' application, si tu as un PC (>486), tu peux certainement trouver ton bonheur avec un compilateur libre, à toi de choisir ton langage: C,C++,Fortran,Pascal, Ada (Lovelace), tout cela et bien d' autres choses sont disponibles sur le Net à l' adresse:
             
           http://sourceforge.net

      - Là tu auras en général des exécutables et leur code source ... à compiler avant exécution; voir "make" en général.

       Voilà bon courage et joyeux noël,

#3 20-12-2008 11:34:53

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Bonjour Luttcho74,

Rappel au règlement : nous ne sommes pas des sauvages et un peu de civilité, surtout quand on est demandeur, n'a jamais tué personne. Lire les Règles qui régissent ces Forums, à tout le moins lever les yeux au dessus du bandeau bleu des menus...

Même si je suis d'accord avec SEGURA, le lien fourni revient à te lâcher dans la Bibliothèque Nationale en te disant : là tu trouveras des livres !

En venant du Basic (structuré si possible, genre Quick Basic ou Turbo Basic) tu peux rester dans le Basic : il existe des Basic très puissants en freeware Visual Basic, Dark Basic, PureBasic, YaBASIC.
Tu peux encore passer au Pascal libre (et gratuit) : "Free Pascal" avec quelques perturbations, mais pas trop ou alors sauter le pas et passer à Python, Ruby, Java...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#4 20-12-2008 23:35:53

Lutcho74
Invité

Re : [Basic puis Python] Programmer un un programme de crypt

Bonsoir,

Déjà je tient à m'excuser si je n'ait pas était très polie et si j'ai fait des fautes d'orthographes mais je n'ait jamais était bon en orthographe(j'ai 14ans donc je vais essayer de m'améliorai) et en plus j'étais un peu presser pour cause d'un couvre feu qui aller éteindre mon ordinateur a 23h.
Pour les autre langage comme le C,C++ etc... je ne m'y suis pas intéressé car déjà je chercher un éditeur freeware et un langage simple pour débuter donc j'ai commencer avec le Basic avec Panoramic comme Editeur, si un jour je connait très bien le langage Basic alors je commencerai à m'intéresser aux autres langages un peu plus complexe comme le C,C++ et la dit-ci peu je vais peu être me mettre au Pascal.

Pour revenir plus précisément au sujet...:
Je n'avance guerre avec vos conseil pour choisir autre langage moi se que je cherche à faire est de décomposer un algorithme simple(du moins pas trop compliqué)en un code source en Basic.

Merci si vous pouvez m'aidez.

Bonne soirée.

PS:Désolé si encore dans ce message il y a des fautes d'orthographe...

#5 21-12-2008 12:22:34

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Salut Lutcho74,

Où es-tu dans le 74 ?
Bon, ça fait un bail que je n'ai plus codé en BASIC, voilà un bout de code un peu fait à" l'arrache". Ca devrait fontionner...
Je crois que pendant un temps, on a a codé les messages avec un système de transposition de lettres à longueur variable.
Le Codeur utilisait un livre, n'importe lequel, et le destinataire devait disposer du même livre, au même format dans la même édition.
Le codeur choisissait une page du livre et une certaine ligne de départ...
Moi je vais me contenter d'un mot clé sans espaces "VICTORHUGO".
Au départ et à l'arrivée chacun disposait d'un petit appareil composé de 2 disques concentriques avec 26 rayons un pour chaque lettre de l'alphabet , de A à Z.
Supposons que je veuille coder " Bienvenue sur les forums BibMath". Pour les besoins de l'informatique, je supprime les espaces et je mets tout en majuscules. A la main, on n'a pas ces problèmes, on les ignore...
Je commence donc par mettre le V du petit disque en face du A du grand disque. Cela fait je prends la première lettre de ma phrase à coder, le B, sur le grand disque et je regarde quelle lettre se situe en face du B sur le petit disque : ici le W...
A la main pas de pb...
Via la programmation, je suis obligé de connaître le code ASCII du V = 86 ce qui me donne un décalage de 86 -65 (code ASCII du A) = 21 et j'ajoute ce décalage au B (code ASCII 66) ce qui me donne 87. Et je récupère le caractère correspondant au code ASCII 87 : W.
Avec les deux disques, aucun pb, mais via la programmation, dès qu'on arrive à un code de 91 on tombe sur [, au lieu de retomber sur A.
L'astuce consiste donc à tester si, après ajout du décalage, on arrive à un code > 90 auquel cas, on retire 26 (26 lettres) 91 - 26 = 65 et CHR$(65)="A"...
Une fois obtenu le W, on fait tourner le petit disque de façon à faire coïncider le I de  VICTORHUGO avec le A du grand disque : décalage 73 - 65 = 12.  I de BIENVENUE --> (code) 73 + 12 (décalage) =85 et CHR$(85)=U.
E de BIENVENUE. Affichage : C (VICTORHUGO)--> A. Décalage 2. d'où code de E +décalage = 69+2=71 -->G
BIE de BIENVENUE donne donc WUG...
Quand on a passé le O final de VICTORHUGO on revient au début, à V...

concatene:
     l=LEN(acrypter$)
     acrypter$=UPPERCASE(acrypter$)
     mot$=""
     FOR  i = 1 TO l
             l$==MID$(acrypter$,i)
             IF l$="'" OR l$=" " OR  l$="-" THEN
                      i=i+1
             ELSE
                    mot$=mot$+l$
            END IF
     NEXT
     l=LEN(mot$)
RETURN

REM INPUT "Entrer la phrase à crypter"',acrypter$
acrypter$=" Bienvenue sur les forums BibMath"
GOSUB concatene
cle$="VICTORHUGO"
LongCle=LEN(cle$)
PhraseCryptee$=""
FOR i = 1 To l
    l$=MID$(mot$,i)
   CodeLettreMot=ASC(l$)
    j=i
    IF i>LongCle THEN
         j=i MOD (LongCle+1)-(i>LongCle)
    END IF
     LettreCle$=MID$(Cle$,j)
     CodeLettreCle=ASC(LettreCle$)
     decalage=CodeLettreCle-65
     CodeLettreCrypt=CodeLettreMot+decalage
     IF CodeLettreCrypt>90 THEN
           CodeLettreCrypt=CodeLettreCrypt-26
     END IF
     PhraseCryptee$=PhraseCryptee$+CHR$(CodeLettreCrypt)
NEXT

PRINT "Résultat du Cryptage :",Phrasecryptee$

La fonction MOD donne le reste : i MOD (LongCle+1) : reste de la division de i par LongCle+1
Ici LongCle=10, donc ma cle contient 10 lettres...
A la 12e lettre (par exemple) de ma phrase à crypter, je dois me retrouver à la 2e de ma clé.
Or 12 Mod 11 = 1 : je dois rajouter parce que 12 >10-- Le test i>LongCle est donc vrai il renvoie -1 (ou +1 selon les BASIC) et - x - = + j'ai bien une addition de 1. C'est une façon d'éviter un IF...THEN.

@+

PS : Pour les codes ASCII http://www.commentcamarche.net/base/ascii.php3
Pour un cryptage basique (sans jeu de mots) en ASCII et en base seize va voir http://www.bibmath.net/forums/viewtopic.php?id=2050


Arx Tarpeia Capitoli proxima...

Hors ligne

#6 21-12-2008 14:50:24

lucho74
Invité

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,
Déjà pour commencer je n'habite plus en Haute Savoie mais dans les Bouche du Rhône(13) j'ai prit se pseudo car Luc(mon vrai prénom) se dit Lutcho en italien et que l'Italie est près de mon lieu de naissance^^ voila pour la pitite histoire de mon pseudo

Pour se qui est de l'ASCII je commence un peu à l'apprendre depuis un petit moment et l'hexadécimal également mais j'ai quand même préférer commencer pas le binaire(question de simplicité^^).
Ton code ne marche pas avec l'Editeur que j'utilise alors je vais voir se que je peu modifier pour le faire fonctionnner. Si un jour j'arrive a le modifier de façon a le faire fonctionner se que je ne pense pas que sa arrivera de ci-tôt je le mettrai sur ce forum.
Merci pour les lien que tu m'a donné et pour les explications.

Tchao

Pour ce qui veulent télécharger panoramic je me permet de faire un peu de pub ^^:
http://pagesperso-orange.fr/panoramic-l … index.html
Et pour le forum:
http://panoramic.free-boards.net/

Merci encore

#7 21-12-2008 17:32:53

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Re,

J'ai regardé ton truc...
Il n'y a que peu de diifférences avec le turbo basic que je connais :
ce n'est pas MID& (lire : dollar. Je ne suis plus  chez moi pour 24 h et je n'ai accès qu'à un écran tactile avec clavier virtuel de m... il lui manque des tas de trucs !) MID&(mot&,i) mais MID&(mot&,i,1)
ni END IF, mais END_IF,
ni UPPERCASE, mais UPPER&()...
D'autre part, dans mon code, j'ai mis 2 = de suite (la faute au langage PYTHON), il n'en faut qu'un...
Si le sous-programme concatene gêne, on peut copier tout ce qui estcompris entre le label concatene: et le RETURN, supprimer le ss-prg, supprimer la ligne  GOSUB concatene et coller à la place ce qui vient d'être copié...

Je retourne voir s'il y a d'autres différences que j'aurais zappées.

@+

PS
Pas de fonction MOD (modulo).
Tu vas devoir contourner la difficulté...
Pour avoir l'équivalent de 325 MOD 8 (par exemple), il faut faire :
325 - 8*INT(325/8) et tu as le reste de la division de325 par 8...
Il y a aussi cette histire de déclaration préalables de toutes les variables utilisées dans le script, via le mot-clé DIM : ce n'est pas très clair d loin comme ça...
Tu dois pouvoir adapter ça facilement...
Bonne chance !


Arx Tarpeia Capitoli proxima...

Hors ligne

#8 21-12-2008 23:21:24

Lutcho74
Invité

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

Pour l'instant j'ai corrigé quelque erreur mais à mon avis elle reste nombreuse et je ne voit pas trop pour l'instant comme les contourné/les modifier.
Je croit que je vais m'y consacré toute une après midi entière pour voir se que je serai capable de faire avec le code que tu ma donné et les explications (car la j'avoue être un peu embrumé^^).
Je te remercie vraiment pour ton aide. Tu as du me faire 4 cinquième de ce qu'il faut faire ensuite a moi de réalisé le reste ^^.

Bonne soirée et JOYEUX NOËL ! !



PS: pour la question pour voir s'y on n'est pas un ordi j'ai eu un gros trou pour pi et pour la guerre je n'avait jamais appris maintenant je le saurais ^^

#9 22-12-2008 22:59:14

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Me revl'a at home !

Et l'atome ça fait boum !
Bon, j'ai téléchargé Panoramic Editor, j'ai tout modifié, je fais les tests demain...

Noyeux Joël à tous...

@+

PS

pour la question pour voir s'y on n'est pas un ordi j'ai eu un gros trou pour pi et pour la guerre je n'avait jamais appris maintenant je le saurais ^

De quoi parles-tu ?


Arx Tarpeia Capitoli proxima...

Hors ligne

#10 22-12-2008 23:40:09

lucho74
Invité

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

Merci pour cette aide que tu m'apporte et pour le truc que tu me demande de quoi je parle c'est une question à laquelle il faut répondre pour pouvoir envoyer un message sur le forum.

Encore merci pour ce que tu fait, j'avoue quand demandant de l'aide sur se forum je m'attendait pas à ça ^^

JOYEUX NOËL ! :)

#11 23-12-2008 13:09:40

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

Chose promise, chose due...
Voilà ton code :

DIM acrypter$,mot$,cle$,PhraseCryptee$,LettreCle$,l$,i%,j%,l%,CodeLettreMot%,CodeLettreCle%,CodeLettreCrypt%,LongCle%,decalage%

REM INPUT "Entrer la phrase à crypter"',acrypter$
acrypter$="Bienvenue sur les forums du site BibMath"
l%=LEN(acrypter$)
     acrypter$=UPPER$(acrypter$)
     mot$=""
     FOR  i% = 1 TO l%
             l$=MID$(acrypter$,i%,1)
             IF l$="'" OR l$=" " OR  l$="-"
                      i%=i%+1
             ELSE
                    mot$=mot$+l$
            END_IF
     NEXT i%
      l%=LEN(mot$)
cle$="VICTORHUGO"
LongCle%=LEN(cle$)
PhraseCryptee$=""
FOR i% = 1 To l%
    l$=MID$(mot$,i%,1)
   CodeLettreMot%=ASC(l$)
    IF i%>LongCle%
        j%=i%-int((i%-1)/LongCle%)*LongCle%
    ELSE
        j%=i%
    END_IF
     LettreCle$=MID$(Cle$,j%,1)
     CodeLettreCle%=ASC(LettreCle$)
     decalage%=CodeLettreCle%-65
     CodeLettreCrypt%=CodeLettreMot%+decalage%
     IF CodeLettreCrypt%>90
           CodeLettreCrypt%=CodeLettreCrypt%-26
     END_IF
     PhraseCryptee$=PhraseCryptee$+CHR$(CodeLettreCrypt%)
NEXT i%
PRINT PhraseCryptee$

Ca fonctionne...
Maintenant, je vais réfléchir à l'optimisation parce que je ne suis pas fier de ma production : trop de variables, pour si peu de choses !

@+

Pour le Fun, un de ces quatre je j'amuserai à recoder :
- mon programe de conjugaison imbattable et autocorrectif au besoin,
- mon programme de calculs astrologiques (carte du ciel et aspects)
- Mon programme de calculs financiers...

Inscris-toi sur BibMath (EDIT : Je vois que c'est fait ! Alors, Bienvenue parmi nous !), et tu n'auras plus à répondre aux questions.
Qui sait, un jour peut-être auras-tu besoin d'un coup de pouce en Maths (même si je ne te le souhaite pas)... ?

Dernière modification par yoshi (23-12-2008 13:17:16)


Arx Tarpeia Capitoli proxima...

Hors ligne

#12 23-12-2008 15:22:03

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

merci beaucoup pour ce code je l'ait amélioré et maintenant on peu écrire les phrase à crypté sans  la marquer dans le code...
La phrase crypter s'affiche dans une autre fenêtre dans un memo donc on a la possibilité de copier et coller la phrase, et avant on ne pouvait pas se servir du input car tu avec mit un rem et un virgule.

Pour ceux qui ne savent pas se que c'est un input il faut écrire et sa marque se que l'on écrit et sa retient pour ensuite en faire se que l'on veut(en le précisant dans le code bien sur^^)

voilà le code et encore merci:

DIM acrypter$,mot$,cle$,PhraseCryptee$,LettreCle$,l$,i%,j%,l%,CodeLettreMot%,CodeLettreCle%,CodeLettreCrypt%,LongCle%,decalage%

PRINT "Entrer la phrase à crypter"
input acrypter$
l%=LEN(acrypter$)
     acrypter$=UPPER$(acrypter$)
     mot$=""
     FOR  i% = 1 TO l%
             l$=MID$(acrypter$,i%,1)
             IF l$="'" OR l$=" " OR  l$="-"
                      i%=i%+1
             ELSE
                    mot$=mot$+l$
            END_IF
     NEXT i%
      l%=LEN(mot$)
cle$="VICTORHUGO"
LongCle%=LEN(cle$)
PhraseCryptee$=""
FOR i% = 1 To l%
    l$=MID$(mot$,i%,1)
   CodeLettreMot%=ASC(l$)
    IF i%>LongCle%
        j%=i%-int((i%-1)/LongCle%)*LongCle%
    ELSE
        j%=i%
    END_IF
     LettreCle$=MID$(Cle$,j%,1)
     CodeLettreCle%=ASC(LettreCle$)
     decalage%=CodeLettreCle%-65
     CodeLettreCrypt%=CodeLettreMot%+decalage%
     IF CodeLettreCrypt%>90
           CodeLettreCrypt%=CodeLettreCrypt%-26
     END_IF
     PhraseCryptee$=PhraseCryptee$+CHR$(CodeLettreCrypt%)
NEXT i%
REM créer une autre fenêtre et y affiche un memo
form 1
memo 2 : parent 2,1
item_add 2, PhraseCryptee$
full_space 2

JOYEUX NOËL A VOUS TOUS !


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

#13 23-12-2008 20:59:01

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

avant on ne pouvait pas se servir du input car tu avec mit un rem et un virgule.

Tu ne pensais quand même pas que j'allais faire 50 essais avec le INPUT ? Trop ch...
Après je me suis dit que tu te ferais un plaisir de corriger...
Pour les suppressions préalables, en plus de l'apostrophe l'espace et le tiret, il faut encore rajouter tous les signes de ponctuation...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#14 23-12-2008 21:18:30

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,
Ouai je comprend tout a fait que tu ne te soit pas compliqué la vie ^^ je mettait les modifs pour un peu tout le monde.
Et là j'ai rajouté un input qui permet d'entrer la clé que l'ont souhaite.
Et je travail sur un programme qui pourrait décrypter un message donné parce que le crypter c'est bien mais il faut que les personne soit en capacité de pouvoir le lire ^^.

Encore merci pour ce code tu m'a fait faire un pas de géant dans des domaine :)


Joyeux Noël et Bonne Année :)


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

#15 25-12-2008 23:13:55

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,
Heu... Yoshi j'essaye de faire un code pour pouvoir décrypter mais d'abord j'ésaye de bien comprendre le code que tu m'a donné et je ne comprend pas le passage :

 FOR i%=1 To l%
    l$=MID$(mot$,i%,1)
    CodeLettreMot%=ASC(l$)
    IF i%>LongCle%
    j%=i%-int((i%-1)/LongCle%)*LongCle%
    ELSE
    j%=i%
    END_IF

Et plus particulièrement :

j%=i%-int((i%-1)/LongCle%)*LongCle%

Si tu pouvais m'expliquer s'il te plait parce que la je sais que ça a un rapport avec la clé et la longueur de la clé mais plus précisément je ne comprend pas --'

Merci d'avance.


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

#16 25-12-2008 23:58:29

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

Grâce à la boucle, je parcours toutes les lettres du message à crypter, une par une : c'est le rôle de MID$...
Chaque lettre une fois extraite, je prends son code ASCII...
Ensuite si le n° de la lettre est supérieur à la longueur de ma clé, alors je reviens à 1.
Exemple : de la lettre à la lettre 10, je cherche à chaque fois le décalage de chacune des composantes de V I C T O R H U G O (ma clé) avec la lettre A, et à la 11e je recommence à partir du V...
La formule que tu soulignes particulièrement permet de ne pas dépasser la longueur de la clé.
Ici LongCle%=10, donc de 11 à 20, j'obtiens le décalage entre le A et chacune des 10 lettres de ma clé, de même entre 21 et 30...
Mes formules s'adaptent automatiquement à la longueur du message à crypter et à la longueur de la clé ;-)

Noyeux Joël !

@+

[EDIT]
Pour comprendre réellement, rien de tel qu'une bonne simulation à la main...
Ton Basic n'ayant pas de fonction de calcul du reste d'une division je biaise en faisant : reste = Dividende - diiviseur * quotient...
J'ai un indice de boucle i% qui permet de parcourir toutes les lettres du message en clair, et j'ai un deuxième indice j% qui permet de parcourir toutes les lettres de la clé et de revenir à 1 dès que i% arrive à LongCle% + 1, 2*LongCle%+1... etc.
Tests
Si i% = 13 avec LongCle%=10 je dois retomber sur j%=3. Donc je fais i%-1 = 12.
INT((i%-1)/LongCle%)=INT(12/10) = 1
Puis j% = i% - INT((i%-1)/LongCle%)*LongCle%=13-1*10=3.
Si i%=37, alors j% = i% - INT((i%-1)/LongCle%)*LongCle%=37-INT((37-1)/10)*10=37-3*10 = 7.
Pigé ?
Pour le décodage, il te faut fonctionner en marche arrièere et non plus chercher quel décalage on va appliquer, mais quel décalage a été appliqué.  Au lieu d'ajouter le décalage, tu vas le soustraire...


Arx Tarpeia Capitoli proxima...

Hors ligne

#17 26-12-2008 19:31:55

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

salut,

Et ben merci j'ai très bien compris le passage qu'avant je n'y comprenait rien, mais je sent que je vais passer pas mal temps pour faire le code de décryptage mais quand je l'aurais fait et bien tester je le mettrai sur ce forum


Bye.

Encore merci et Joyeuses Fêtes



PS :
Juste un pitite question encore ^^ :
A quoi correspond mot$, j'ai l'impression qu'il a la même utilité que PhraseCryptee$ n'est ce pas?

Dernière modification par Lutcho74 (26-12-2008 22:59:06)


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

#18 27-12-2008 20:52:35

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Bonsoir,

Non, mot$ c'est le message acrypter$ débarrassé des signes de ponctuation, des apostrophes, des espaces, etc...
Bon, je me lance dans le module de décryptage depuis 10 min, j'ai d'ailleurs bientôt fini...
Après, je programmerai une variante de la méthode de cryptage proposée : au lieu de chercher le décalage de chaque lettre de la clé avec le A, on peut aussi "décaler le décalage"... En effet, on peut chercher le décalage de la 1ere lettre de la clé avec A, le décalage de la 2e lettre de la clé avec B, le décalage de la 3e lettre de la clé avec C et ainsi de suite...

Essaie d'y penser quand tu auras fini ton module de décryptage, mais pense quand même d'abord à ton boulot, hein !?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#19 27-12-2008 21:46:03

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

Est ce que tu pourrais me donner le code de ton module de décryptage parce que la j'avoue être complètement perdue...j'arrive a décoder un message sur un papier avec un stylo mais je n'arrive pas a le coder...

Mon boulot se résume a apprendre des leçons que je ne retient pas 2 jours...

Merci d'avance

Bonne Année

Dernière modification par Lutcho74 (27-12-2008 21:50:48)


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

#20 27-12-2008 21:56:49

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

J'ai fini sur papier...
Reste plus qu'à le tester demain.

Mon boulot se résume a apprendre des leçons que je ne retient pas 2 jours...

Garnement ! C'est parce qu'elles ne t'intéressent pas... Ce en quoi tu as bien tort.
J'ai toujours prévenu ceux que j'avais en face de moi que je me foutais pas mal de savoir s'ils avaient appris leurs leçons...
Ca m'était complètement égal, je demandais qu'elles soient sues, nuance !

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#21 27-12-2008 22:17:47

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

Re,

Toutes les matières m'intéresse (mis à par la musique), le problème avec moi c'est le par cœur, enfin je peu les apprendre les leçons mais sa reste pas bien longtemps dans ma tête par exemple l'année dernière je devais apprendre les capital régional, je les appris et cette année je pourrais en citer une dizaines environs. Pareil pour les maths je suis plutôt fort (en tout cas sans trop travaillé l'année dernière j'avais 15) mais les propriétés je ne les retient que très peu de temps (mis à par Pythagore et Thalès).

Pour le programme de décryptage en faite je croit que mon problème c'est que j'étais trop dépendant de ton code je ne faisait que modifié quelque petite chose par ci par là, et la je suis en train de faire un code tous seul en m'aidant des brouillon que j'ai fait pour décrypter à la main et à mon avis si j'arrive à refaire ce code de décryptage et que je modifie celui de cryptage pour qu'il s'y adapte entièrement sa devrait me prendre un semaine mais hélasse les cours vont pas trop tardé à reprendre et il va falloir que je travail (2 contrôles à la rentré et un dossier sur le tabagisme -_-) donc si je m'y mais bien d'ici mi-janvier j'aurais fait un bon code.
En tout cas si tu pouvais mettre ton code sur le forum se serai super et je trouve ton idée sur le décalage plutôt complexe mais certainement réalisable avec un peu de temps (en plus tu as l'aire de vraiment t'y connaitre pour tous se qui est ASCII et Programmation).


PS : Tu est professeur de quel matière? (math?)

Dernière modification par Lutcho74 (27-12-2008 22:20:36)


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

#22 28-12-2008 12:32:29

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,

Bon, j'ai un peu de retard, parce que je viens de m'apercevoir que le script de cryptage est faux, il manque des lettres...
Je viens de le refaire en Python, et ça fonctionne..
Donc, je cherche pourquoi...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#23 28-12-2008 13:15:17

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

salut,

C'est bizarre...la je suis en train de voir pour me faire le même style de prog de cryptage mais simplifié ^^.
Je ne voit pas où sont les erreurs dans ton programme...?

a+


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

#24 28-12-2008 14:12:14

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : [Basic puis Python] Programmer un un programme de crypt

Bon,

C'était tout bête, mais j'ai cherché 2 heures à déboguer pas à pas... L'erreur était tout au début du script d'encodage : il y avait 6 lettres qui étaient zappées à cause de la suppression des espaces, apostrophes...
Remplacer

l$=MID$(acrypter$,i%,1)
IF l$="'" OR l$=" " OR  l$="-"
        i%=i%+1
ELSE
        mot$=mot$+l$
END_IF

par :

l$=MID$(acrypter$,i%,1)
IF l$<>"'" AND l$<>" " AND  l$<>"-"
     mot$=mot$+l$
END_IF

Et voilà ton script de décryptage (qui lui fonctionnait du premier coup, mais c'est lui qui m'a permis de voir qu'au décodage des lettres manquaient) :

DIM PhraseEnClair$,cle$,PhraseCryptee$,LettreCle$,l$,i%,j%,l%,CodeLettrePhraseEnClair%,CodeLettreCle%,CodeLettrePhraseCryptee%,LongCle%,decalage%

PhraseCryptee$="WQGGJVUOKGPZNXGWVLAANLWLWKLVOPHIVA"
l%=LEN(PhraseCryptee$)
PhraseEnClair$=""
cle$="VICTORHUGO"
LongCle%=LEN(cle$)
FOR i% = 1 To l%
    CodeLettrePhraseCryptee%=ASC(MID$(PhraseCryptee$,i%,1))
    j%=i%-int((i%-1)/LongCle%)*LongCle%
    CodeLettreCle%=ASC(MID$(Cle$,j%,1))
    decalage%=CodeLettreCle%-65
    CodeLettrePhraseEnClair%=CodeLettrePhraseCryptee%-decalage%
    IF CodeLettrePhraseEnClair%<65
        CodeLettrePhraseEnClair%=CodeLettrePhraseEnClair%+26
    END_IF
    PhraseEnClair$=PhraseEnClair$+CHR$(CodeLettrePhraseEnClair%)
NEXT i%
REM créer une autre fenêtre et y affiche un memo
form 1
memo 2 : parent 2,1
item_add 2, PhraseenClair$
full_space 2

*Tu veux faire un autre test ? Voilà PhraseCryptee$="DTPXAVWUXODBRTGRIMUZPUGGHZUXOGKMPLOSSYJSNACRSIKYYSIWAXFUHHYIIDGKFVKYGI"

Apparemment ce serait du codage de Vigenère... Regarde ici : http://www.bibmath.net/crypto/poly/viganaljava.php3

Je vais donc m'attaquer au décalage variable suggéré dans mon post d'hier...

Pour programmer proprement, commence par écrire du "pseudo code" en langage habituel...
Pour le script de décodage, ça ressemble à ça :
1 .Parcourir une à une toutes les lettres de la phrase cryptée
2. Extraire Code ASCII de chacune de ces lettres
3. Créer indice qui parcourt une à une les lettres de la clé et qui revient à la première à la fin
4. Extraire Code ASCII de chacune de ces lettres de la Clé
5. Calculer le décalage appliqué
6. Soustraire ce décalage au code de la lettre de la phrase cryptée.
7. Si le code obtenu est < 65 alors rajouter 26 (nb de lettres de l'Alphabet)
8. Concaténer à chaque fois le caractère correspondant au code trouvé.
9. Sortie de boucle
10. Affichage

@+

PS Oui, j'étais prof de maths. En même temps ce ne pouvait guère être une autre réponse. Sur un Forum de Maths, un Prof qui répond aux questions, n'est en général pas un Prof de français, non ? ;-)


Arx Tarpeia Capitoli proxima...

Hors ligne

#25 28-12-2008 17:11:09

Lutcho74
Membre
Lieu : Vitrolles
Inscription : 22-12-2008
Messages : 136
Site Web

Re : [Basic puis Python] Programmer un un programme de crypt

Salut,
Merci, la je vais voir s'y je pourrais un peu le reproduire et surtout le comprendre, d'ailler merci pour les explications.

Bye


La seule façon raisonnable de vivre en ce bas monde, c'est en dehors des règles.

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
cinquante sept plus trente huit
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums