Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Débuter
Débuter Forum d'entraide pour débuter en langage de programmation C++. Avant de poster : cours d'initiation au C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/12/2012, 20h58   #1
takago
Invité de passage
 
Homme Adrien
BTS IRIS
Inscription : septembre 2012
Messages : 22
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 : 22
Points : 4
Points : 4
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
takago est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 21h36   #2
Flob91
Membre expérimenté
 
Avatar de Flob91
 
Florent
Ingénieur
Inscription : mai 2005
Messages : 791
Détails du profil
Informations personnelles :
Nom : Florent
Âge : 29
Localisation : France, Paris (Île de France)

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

Informations forums :
Inscription : mai 2005
Messages : 791
Points : 548
Points : 548
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.
Flob91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 21h57   #3
takago
Invité de passage
 
Homme Adrien
BTS IRIS
Inscription : septembre 2012
Messages : 22
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 : 22
Points : 4
Points : 4
Merci je vais essayer et je te dit
takago est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 23h34   #4
takago
Invité de passage
 
Homme Adrien
BTS IRIS
Inscription : septembre 2012
Messages : 22
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 : 22
Points : 4
Points : 4
Merci beaucoup de ton aide c'est parfait tout fonction
takago est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 11h58   #5
Kylvan
Invité de passage
 
Inscription : décembre 2012
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 5
Points : 1
Points : 1
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;
        }
Kylvan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h53.


 
 
 
 
Partenaires

Hébergement Web