Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Homme Profil pro Adrien
    BTS IRIS
    Inscrit en
    septembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Nom : Homme Adrien
    Localisation : France

    Informations professionnelles :
    Activité : BTS IRIS
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2012
    Messages : 40
    Points : 3
    Points
    3

    Par défaut Cryptage Vigenère C++

    Bonjour,
    dans le cadre d'un projet de ma première année de BTS, je dois réaliser un mini-projet qui consiste à Crypter et Décrypter un texte avec la méthode Vigenère.
    Voici mon code :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    // Déclaration des variables globales 
    char ChaineCaractere [255]=""; 
    char ChaineCryptee [255]=""; 
    char ClefVigenere [255] = "bonjour"; 
    int z; 
    int x; 
    strcpy (ChaineCaractere,MFichier->Text.t_str()); 
    int TailleChaine=strlen(ChaineCaractere);	// calcul taille buffer non crypté 
    int TailleChaine1=strlen(ClefVigenere); 
    for( z=0; z<TailleChaine; z++) 
    { 
        for(x=0; x<TailleChaine1; x++) 
            ChaineCryptee[z]=ChaineCaractere[z]+ClefVigenere[x];
    } 
    ChaineCryptee[z]='\0'; 
    MFichier->Clear(); 
    MFichier->Lines->Add(ChaineCryptee);
    Je voudrais ne pas avoir à déclarer plusieurs fois ma clé si la chaîne de caractères à crypter et plus longue que la clé. Vu que ma clé ne fait que 7 caractères, cela ne crypte que les 7 premiers caractères de mon texte.
    ( Il es aussi possible que les for ne soit pas adapter pour cette boucle vue que dans le debug les deux variable z et x ne sincèrement pas en même temps )

    D'avance merci pour votre réponse.
    Répondre

  2. #2
    Membre expérimenté Avatar de Flob91
    Profil pro Florent
    Ingénieur
    Inscrit en
    mai 2005
    Messages
    814
    Détails du profil
    Informations personnelles :
    Nom : Florent
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2005
    Messages : 814
    Points : 538
    Points
    538

    Par défaut

    Je pense qu'il faut mieux faire :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int TailleChaine=strlen(ChaineCaractere); // calcul taille buffer non crypté 
    int TailleChaine1=strlen(ClefVigenere);
    for( z=0; z<TailleChaine; z++)
    {
    ChaineCryptee[z]=ChaineCaractere[z]+ClefVigenere[z%TailleChaine1];
    
    
    }
    Comme ca, ta clé se répétera sans probleme.

  3. #3
    Invité de passage
    Homme Profil pro Adrien
    BTS IRIS
    Inscrit en
    septembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Nom : Homme Adrien
    Localisation : France

    Informations professionnelles :
    Activité : BTS IRIS
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2012
    Messages : 40
    Points : 3
    Points
    3

    Par défaut

    Merci je vais essayer et je te dit

  4. #4
    Invité de passage
    Homme Profil pro Adrien
    BTS IRIS
    Inscrit en
    septembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Nom : Homme Adrien
    Localisation : France

    Informations professionnelles :
    Activité : BTS IRIS
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2012
    Messages : 40
    Points : 3
    Points
    3

    Par défaut

    Merci beaucoup de ton aide c'est parfait tout fonction

  5. #5
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 2
    Points
    2

    Par défaut

    Bonjour j'ai moi aussi un problème mais pour le decryptage de vigenere car sa efface mon edit box, une solution ?
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void __fastcall TForm1::Bdecrypt_vigClick(TObject *Sender)
    {
    	char ClefVigenere [255] = "bonjour";
    	char ChaineCaractere [255]="";
    	char ChaineDecrypter[200];
    	char ChaineCrypter[200];
    	strcpy (ChaineCrypter,MTexte1->Text.t_str() );
    	int TailleChaine=strlen(ChaineCaractere); // calcul taille buffer non crypté
    	int TailleChaine1=strlen(ClefVigenere);
    	int y;	// calcul taille buffer non crypté
    	int z;
    	for( z=0; z<TailleChaine; z++)
    	{
    	 ChaineDecrypter[z]=ChaineCrypter[z]-ClefVigenere[z%TailleChaine1];
     
     
    	}
    	ChaineDecrypter[z]='\0' ;
    	MTexte1->Clear();
    	MTexte1->Text=ChaineDecrypter;
            }

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •