Cripteur de fichier texte qui protege par mot de passe

Contenu du snippet

Voila c'est un cripteur de fichier texte protegé par mot de passe....
comme c'est une version "beta" elle est compliquer d'utilisation mais vous pouvez me demander comment sa marche, et indiquez moi si il y a des bugs...
Ce code a été compiler avec devcpp 4

Source / Exemple :


#include <iostream.h>
#include <conio.c>

char marque[15]="CRIPTMALKOM\n";

void cript()
{
 char File[101];
 char FileCript[101];
 char Ligne[100001];
 char MDP[101];
 int i;
 FILE * file;
 FILE * filecript;

 cout<<"Nom du fichier a cripte : ";
 gets(File);

 file=fopen(File,"r");
 if(file==NULL)
 {
  cout<<"Fichier inexistant.";
  getchar();
  return;
 }
 fclose(file);

 cout<<"Mot de passe voulu : ";
 gets(MDP);

 cout<<"Nom du fichier cripte : ";
 gets(FileCript);
 strcat(FileCript,".criptmalkom");

 cout<<"Nom doner au fichier quand il sera decripter : ";
 gets(Ligne);

 file=fopen(File,"r");
 filecript=fopen(FileCript,"w");

 fputs(marque,filecript);
 fputs(Ligne,filecript);
 fputs("\n",filecript);

 i=0;
 while(MDP[i]!='\0')
 {
  if(MDP[i]!='\n')
  {
   MDP[i]=MDP[i]+i;
  }
  i=i+1;
 }
 fputs(MDP,filecript);
 fputs("\n",filecript);

 while(fgets(Ligne,100001,file)!=NULL)
 {
  i=0;
  while(Ligne[i]!='\0')
  {
   if(Ligne[i]!='\n')
   {
    Ligne[i]=Ligne[i]+i;
   }
   i=i+1;
  }
  fputs(Ligne,filecript);
 }
 fclose(file);
 fclose(filecript);

 cout<<"Fichier cripte avec succes.";
 getchar();
}

void decript(char FileCript[101]="")
{
 char File[101];
 char Ligne[100001];
 char MDP[101];
 int i;
 FILE * file;
 FILE * filecript;

 if((strcmp(FileCript,"")==0))
 {
  cout<<"Nom du fichier cripte : ";
  gets(FileCript);

  filecript=fopen(FileCript,"r");
  if(filecript==NULL)
  {
   cout<<"Fichier inexistant.";
   getchar();
   return;
  }
 fclose(filecript);
 }

 cout<<"Mot de passe : ";
 gets(MDP);

 filecript=fopen(FileCript,"r");

 fgets(Ligne,100001,filecript);

 if((strcmp(Ligne,marque)!=0))
 {
  cout<<"Fichier non cripte ou cripte avec un autre cripteur.";
  getchar();
  return;
 }

 fgets(File,100001,filecript);
 fgets(Ligne,100001,filecript);

 i=0;
 while(Ligne[i]!='\0')
 {
  if(Ligne[i]!='\n')
  {
   Ligne[i]=Ligne[i]-i;
  }
  i=i+1;
 }

 strcat(MDP,"\n");

 if((strcmp(Ligne,MDP)!=0))
 {
  cout<<"Mauvais mot de passe.";
  getchar();
  return;
 }

 i=0;
 while(i!=101)
 {
  if(File[i]=='\n')
  {
   File[i]='\0';
  }
  i=i+1;
 }

 file=fopen(File,"w");

 while(fgets(Ligne,100001,filecript)!=NULL)
 {
  i=0;
  while(Ligne[i]!='\0')
  {
   if(Ligne[i]!='\n')
   {
    Ligne[i]=Ligne[i]-i;
   }
   i=i+1;
  }
  fputs(Ligne,file);
 }
 fclose(file);
 fclose(filecript);

 cout<<"Fichier "<<File<<" decripte avec succes.";
 getchar();
}

int main(int argc,char * argv[])
{
 char menu[2];
 if(argc==2)
 {
  decript(argv[1]);
 }
 else
 {
  cout<<"Criptage ou décriptage? c-d : ";
  gets(menu);
  if(menu[0]=='c')
  {
   cript();
  }
  if(menu[0]=='d')
  {
   decript();
  }
 }
}

Conclusion :


Ben aucun bug connu.....
je vais creer un cripteur en mode win32 et j'ai un include avec des fonction pour cripter et decripter.... si sa vous interresse.

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.