Chiffrement de vigenere

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 / Exemple :


/*
  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 ..

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.