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 d'un fichier par la méthode césar


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut cryptage d'un fichier par la méthode césar
    Bonjour,
    je dois utilisé le cryptage par la méthode césar (décalage de n lettres dans l'alphabet) et mon programme (qui doit utiliser des fichiers) me rajoute des caractères après la chaine crypté correctement (selon le nombre de caractères : moin de 6 ou plus de 16).
    Je vous copie mon fihier source ici et j'attend vos commentaires et suggestions !

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    #include<stdlib.h>
    #include<stdio.h>
     
    int main(void)
    {
      FILE * f;
      FILE * g;
      f=fopen("cesarclr.txt","r");
      g=fopen("cesarcrt.txt","w");
      char clr[60],crt[60];
      int i,n;
     
      if(f==NULL || g==NULL)
      {printf("erreur");}
      else
      {
        fgets(clr,80,f);
        printf("chaine lu : %s\n",clr);
        n=strlen(clr);
        for(i=0;i<n;i++)
        {
          if((clr[i]!=0)&&(clr[i]!=' '))
          {
            crt[i]=clr[i]-0x03;
            if (crt[i]<'a')
            {crt[i]=crt[i]+26;}
          }
          else 
          {crt[i]=clr[i];}
        }
        fprintf(g,"%s",crt);
        printf("chaine crypte : %s\n\n",crt);
      }
      fclose(f);
      fclose(g);
     
      system("pause");
      return 0;
    }
    je pense donc que mon programme doit planter ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for(i=0;i<n;i++)
    {
    if((clr[i]!=0)&&(clr[i]!=' '))
    {
    crt[i]=clr[i]-0x03;
    if (crt[i]<'a')
    {crt[i]=crt[i]+26;}
    }
    else
    {crt[i]=clr[i];}
    }
    Merci d'avances pour vos réactions, ceci permettrai de me débloquer car ce programme et le début d'une suite de différents autres programmes, qui eux, fonctionne correctement.

    Merci encore!

  2. #2
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    met ton code entre des balises ... code ...

    sinon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char clr[60],crt[60];
    [...]
    fgets(clr,80,f);
    ça te choque pas?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut
    C'est à dire entre balise?

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par wedge.tm
    C'est à dire entre balise?
    Merci de (re)lire les règles du forum...



    Tu peux éditer ton post avec et mettre les balises code avec

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut
    j'avais lu mais j'avais pas capter comment on faisait!
    sinon j'ai résolu le probleme a l'instant!
    il falai se servir de EOF dans la boucle for
    merci quand meme!
    j'aurais apris le système de code ^^

  6. #6
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
          if((clr[i]!=0)&&(clr[i]!=' '))
          {
            crt[i]=clr[i]-0x03;
            if (crt[i]<'a')
            {crt[i]=crt[i]+26;}
          }
          else 
          {crt[i]=clr[i];}
    Sur if((clr[i]!=0)&&(clr[i]!=' '))
    Le caractère analysé ne sera jamais un NULL parce que la longueur de la chaîne est retrouvée avec un n=strlen(clr); par conséquent la vérification est inutile. Les instructions du else aussi.

    'A' ne deviendra pas 'X', mais '>'. je me trompe?

    De plus, un modulo serait plus joli pour ce ROT3.

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

Discussions similaires

  1. [AJAX] Comment envoyer un fichier par la méthode post à l'aide d'ajax?
    Par othmane126 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/03/2008, 12h00
  2. Transfert de fichiers par la méthode POST
    Par febac20 dans le forum Langage
    Réponses: 1
    Dernier message: 03/10/2007, 21h53
  3. Cryptage d'un fichier par inversion de bits
    Par Theo190107 dans le forum x86 16-bits
    Réponses: 19
    Dernier message: 31/08/2007, 22h34
  4. Protection d'un fichier par cryptage avec gpg
    Par Michaël dans le forum Sécurité
    Réponses: 1
    Dernier message: 30/01/2007, 14h10
  5. Méthode : un fichier par table ?
    Par developman dans le forum Oracle
    Réponses: 8
    Dernier message: 19/12/2006, 08h37

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