IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Cryptage en C selon la méthode de césat


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Cryptage en C selon la méthode de césat
    g ma chaine de caractères sur un pointeur *str.
    je vais le crypter en utilisant la méthode de césar, donc je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while(*str)
    {
    si c'est une minuscule,
    *str = 'a' + (*str - 'a' +13) % 26;
     
    si c une maj,
    *str = 'A' + (*str - 'A' +13) % 26;
    }
    g pas mis les if et tt le bordel...

    j'arrive bien à le crypter, maintenant, comment faire pour le retrouver, avec ce modulo 26, je ne sais pas comment retrouver le mot de passe original. ?
    ^Shenron^

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Mai 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    voila une solution qui semble acceptable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    while(*str) 
    { 
    if ( (*str >= 'a') || (*str) <='z' ) 
    { 
    *str = *str - 13; 
    if ( *str < 'a' ) 
    { 
    *str = *str + 26; 
    } 
    } 
     
    if ( (*str >= 'A') || (*str) <='Z' ) 
    { 
    *str = *str - 13; 
    if ( *str < 'A' ) 
    { 
    *str = *str + 26; 
    } 
    } 
    }
    Mais dans mon souvenir le code de césar était un brin plus compliqué.
    Le truc consistait à choisir un mot, la clef, à écrire ses lettres sans doublons dans leur ordre d'apparition, puis le reste de l'alphabet toujours dans l'ordre et sans réutiliser les lettres de la clef.

    Par exemple :

    Clef dudule

    Donne comme alphabet de conversion

    d u l e a b c f g h i j k m n o p q r s t v w x y z
    a b c d e f g h i j k l m n o p q r s t u v w x y z

    Donc a devient d, b devient u, c devient l, etc. Le décalage est variable dans le message. d donne a soit -4, b donne u soit + 18, etc.

    Un gros dé faut de cette méthode est que les dernières lettres ne sont pas décolées. Mais elles servent rarement.

    A+

    Thomas

  3. #3
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Remarque: ce que vous avez ecrit, c'est le ROT13 -> decalage de 13 lettres
    .
    Le cryptage de Cesar (rendons a Cesar ce qui appartient a Cesar), etait aussi une rotation, mais de 3:
    a->d, b->e, c->f...z->c
    a l'epoque, vu que personne savait lire, si en plus c'etait un minimum minimorum crypte ca suffisait. Et donc le decryptage se faisait en decalant de 3 vers la gauche (a->x,b->y,c->z...z->w)

    Par contre pour le ROT13, l'avantage, c ke le cryptage et le decryptage sont le meme !!! :
    ((x+13)%26 + 13) %26 = (x+26) %26 = x !!!

    Donc pas besoin de 2 fonctions. ;-)

    Pour bien apprendre la programmation C voir les tutoriels et cours pour apprendre C : http://c.developpez.com/cours/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/11/2018, 07h11
  2. Cryptage selon la méthode de César
    Par gege2061 dans le forum Télécharger
    Réponses: 7
    Dernier message: 05/07/2016, 13h38
  3. Réponses: 4
    Dernier message: 25/11/2008, 20h35
  4. Réponses: 15
    Dernier message: 19/08/2008, 12h55
  5. Réponses: 6
    Dernier message: 07/06/2007, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo