Accueil > > > CHIFFREMENT DE VIGENERE
CHIFFREMENT DE VIGENERE
Information sur la source
Description
ce code permet un cryptage et decryptage de vigenere. pour executer le programme : compiler en ligne de commande taper : vigenere.exe -c -pwd nomfichier pwd : le mot de passe pour le cryptage. nomfichier : le nom de fichier à crypter pour le decryptage : mm syntaxe en replacant c par d.
Source
- /*
- Name: vigenere
- Copyright: Mars 2011
- Author: Lajouad Rachid
- Date: 06/03/11 22:00
- Description: cryptage et décryptage par la méthode de viginère
- avec une ligne de commande
- */
-
- # include <stdio.h>
- # include <stdlib.h>
- # include <string.h>
-
- char Crypt(char,char*);
- char Decrypt(char,char*);
-
- int main(int argc,char *argv[]) {
- if(argc < 4) {
- printf("syntax error : \n"
- "Syntaxe de la commande : \n\n\t"
- "%s -{c|d} -pwd NomFichier\n",argv[0]);
- getchar();
- exit(1);
- }
- if(strcmp(argv[1],"-c") == 0) {
- FILE *fs, *fd;
- char fname[200],pwd[10];
- char c;
- fs = fopen(argv[3],"rb+");
- if(fs == NULL) {
- printf("syntax error : \n"
- "Syntaxe de la commande : \n\n\t"
- "%s -{c|d} -pwd NomFichier\n",argv[0]);
- printf("\n\n fichier inexistant ... Retype command ... ");
- getchar();
- exit(1);
- }
- strcpy(fname,argv[3]);
- fname[strlen(argv[3])-3] = 'v';
- fname[strlen(argv[3])-2] = 'i';
- fname[strlen(argv[3])-1] = 'g';
- fd = fopen(fname,"wb+");
- // sauvegarder l'extension à l'interieur du fichier crypté
- fprintf(fd,"%c",argv[3][strlen(argv[3])-3]);
- fprintf(fd,"%c",argv[3][strlen(argv[3])-2]);
- fprintf(fd,"%c",argv[3][strlen(argv[3])-1]);
- while( !feof( fs ) ) {
- fscanf(fs,"%c",&c);
- fprintf(fd,"%c",Crypt(c,argv[2]));
- }
- fclose(fs); fclose(fd);
- }
-
- else if(strcmp(argv[1],"-d") == 0) {
- FILE *fs, *fd;
- char fname[200],pwd[10];
- char c;
- int j = 0;
- fs = fopen(argv[3],"rb+");
- if(fs == NULL) {
- printf("\n\n fichier inexistant ... Retype command ... ");
- exit(1);
- }
- strcpy(fname,argv[3]);
- //rerstauration de l'extension du fichier
- while( !feof( fs ) ) {
- if( j < 3) {
- j++;
- fscanf(fs,"%c",&c);
- fname[strlen(argv[3])-4+j] = c;
- }
- else {
- if(j == 3) fd = fopen(fname,"wb+");
- j++;
- fscanf(fs,"%c",&c);
- fprintf(fd,"%c",Decrypt(c,argv[2]));
- }
- }
- fclose(fs); fclose(fd);
- }
- else {
- printf("commutateur inconnu ...\n\n");
- printf("syntax error : \n"
- "Syntaxe de la commande : \n\n\t"
- "%s -{c|d} -pwd NomFichier\n",argv[0]);
- exit(1);
- }
- printf("\n\n\t\t\tsuccess ... cryptage terminé");getchar();
- }
-
-
- char Crypt(char c,char *pwd){
- static int i;
- if(++i >= strlen(pwd)) i = 0;
- return (c + (pwd[i] - '0'));
- }
-
- char Decrypt(char c,char *pwd){
- static int i;
- if(++i >= strlen(pwd)) i = 0;
- return (c - (pwd[i] - '0'));
- }
/*
Name: vigenere
Copyright: Mars 2011
Author: Lajouad Rachid
Date: 06/03/11 22:00
Description: cryptage et décryptage par la méthode de viginère
avec une ligne de commande
*/
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
char Crypt(char,char*);
char Decrypt(char,char*);
int main(int argc,char *argv[]) {
if(argc < 4) {
printf("syntax error : \n"
"Syntaxe de la commande : \n\n\t"
"%s -{c|d} -pwd NomFichier\n",argv[0]);
getchar();
exit(1);
}
if(strcmp(argv[1],"-c") == 0) {
FILE *fs, *fd;
char fname[200],pwd[10];
char c;
fs = fopen(argv[3],"rb+");
if(fs == NULL) {
printf("syntax error : \n"
"Syntaxe de la commande : \n\n\t"
"%s -{c|d} -pwd NomFichier\n",argv[0]);
printf("\n\n fichier inexistant ... Retype command ... ");
getchar();
exit(1);
}
strcpy(fname,argv[3]);
fname[strlen(argv[3])-3] = 'v';
fname[strlen(argv[3])-2] = 'i';
fname[strlen(argv[3])-1] = 'g';
fd = fopen(fname,"wb+");
// sauvegarder l'extension à l'interieur du fichier crypté
fprintf(fd,"%c",argv[3][strlen(argv[3])-3]);
fprintf(fd,"%c",argv[3][strlen(argv[3])-2]);
fprintf(fd,"%c",argv[3][strlen(argv[3])-1]);
while( !feof( fs ) ) {
fscanf(fs,"%c",&c);
fprintf(fd,"%c",Crypt(c,argv[2]));
}
fclose(fs); fclose(fd);
}
else if(strcmp(argv[1],"-d") == 0) {
FILE *fs, *fd;
char fname[200],pwd[10];
char c;
int j = 0;
fs = fopen(argv[3],"rb+");
if(fs == NULL) {
printf("\n\n fichier inexistant ... Retype command ... ");
exit(1);
}
strcpy(fname,argv[3]);
//rerstauration de l'extension du fichier
while( !feof( fs ) ) {
if( j < 3) {
j++;
fscanf(fs,"%c",&c);
fname[strlen(argv[3])-4+j] = c;
}
else {
if(j == 3) fd = fopen(fname,"wb+");
j++;
fscanf(fs,"%c",&c);
fprintf(fd,"%c",Decrypt(c,argv[2]));
}
}
fclose(fs); fclose(fd);
}
else {
printf("commutateur inconnu ...\n\n");
printf("syntax error : \n"
"Syntaxe de la commande : \n\n\t"
"%s -{c|d} -pwd NomFichier\n",argv[0]);
exit(1);
}
printf("\n\n\t\t\tsuccess ... cryptage terminé");getchar();
}
char Crypt(char c,char *pwd){
static int i;
if(++i >= strlen(pwd)) i = 0;
return (c + (pwd[i] - '0'));
}
char Decrypt(char c,char *pwd){
static int i;
if(++i >= strlen(pwd)) i = 0;
return (c - (pwd[i] - '0'));
}
Conclusion
j'attend vos commentaires ..
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
architecture systeme [ par gus ]
Qu'est ce qu'une sémaphore?Qu'est ce que la mémoire partagée?Merci
SYSTEME D'EXPLOITATION [ par nilufacou ]
Je sais qu'il existe un et même plusieur système d'exploitation (de type Linux) qui sont sur un cd-rom et on boote dessus. Pas besoin de disque dur sa
lancer une commande systeme sur un unix [ par Sioban ]
Je souhaite lancer un commande systeme de type un "ls -l nom_du_fichier.dat" sur un serveur unix via mon PC(XP). (Pour avoir le nombre de ligne de cer
Probléme de variable externe [ par mateo40 ]
J'ai un problème !! (pas tres original comme intro...)Je travaile sous Builder C++.J'ai 2 fichiers DES.h et DES.cpp qui contiennent une classe dédiée
Recherche : Résolution de systeme d'equation matricielle [ par julien81 ]
Bonjour tlm En fait cette année j'ai un sujet pour mon projet annuel c'est de faire le prog pour resoudre un systeme d'equation avec des matrice (dime
[TC++3.0] pb d'affichage de l'heure du systeme!!!!! [ par kobee12 ]
J'ai essaye d'afficher l'heure du systeme avec la structure 'dostime_t'. Seulement a chaque fois que j'affiche l'heure il m'ecrit un truc du style : '
Le carnet d'adresse outlook et le C/C++ [ par zinotron ]
Je suis a la recherche d'un systeme pour gerer le carnet d'adresse d'oulook en C.par ex-> que ca puisse me sortir toutes les entrées du carnet, ou
executer une commande systeme [ par anthraxx ]
bonjour,je voulais savoir si quelqu'un connait un moyen d'éxecuter des commandes su systemes d'exploitation sous Windows, et d'en récupérer l'output.I
A vore avis... [ par DeAtHCrAsH ]
A votre avis quel est la solution la moins couteuse en ressource systeme pour declencher une procedure de mon application a un moment donné ?Je m'expl
comment connaitre le systeme utilisé (XP, 2000, 98) [ par gege1024 ]
voila, j'ai une appli MFC,mais je dois adapter le graphisme en fct du systeme windows d'ou sera executé mon programme.comment savoir si c'est XP,2000,
|
Derniers Blogs
SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet [ #SHAREPOINT 2013 ] LES MODèLES DE SITES STANDARDS.[ #SHAREPOINT 2013 ] LES MODèLES DE SITES STANDARDS. par Patrick Guimonet
C'est un point peu mis en avant mais SharePoint 2013 a été l'occasion de remettre de l'ordre dans les modèles de sites. Tout d'abord, un certain nombre de modèles ont été tout simplement rendus obsolètes (cf. Fonctionnalités déco...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Forum
QUESTION QUESTION par wouroudkouka
Cliquez pour lire la suite par wouroudkouka PB PACMAN C++PB PACMAN C++ par garfield95
Cliquez pour lire la suite par garfield95
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|