Cripteur de fichier texte qui protege par mot de passe

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 927 fois - Téléchargée 34 fois

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

Ajouter un commentaire

Commentaires

TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010
-
,-----------,
| lol |
'-----------'
cs_dominion
Messages postés
230
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
15 mai 2008
-
Dis donc quand on sait pas que les majuscules c'est seulement au début on se tait hein !
(humour pouris g pas pu m'en empêcher...)
TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010
-
Bon, là par contre faut vraiment que je dise à malkommalkom que "cripter" ca s'écrit crypter.
Autre chose, c'est pas parce qu'un son se prononce "er" qu'il s'écrit forcément "er". En francais y'a des règles de conjugaison et de grammaire.

À quand www.orthofrance.com ???
Ou alors www.smsfrance.com ???
TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010
-
Le plus rapide c'est ++i. Bon dans le cas des types de bases, le compilo doit bien faire ses optimisations...
Mais sinon, pense que quand on fait i = i+1, ca consulte i, ca ajoute 1 et ca enregistre i.
Quand on fait i++, ca sauvegarde la valeur de i, ca incrémente i de 1 (en un coup) et ca renvoie la valeur sauvegardée.
++i ca incrémente i de 1 et ca le renvoie.

C'est surtout vrai avec les objets, lorsque l'on crée des types abstraits. Sinon, pour les types de bases, ca dépend vraiment des architectures de proc (je crois que ce que j'ai dis est valide sur les processeurs RISK car les opérations qui incrémentent directement en mémoire existent; mais c'est à vérifier...).

=> Brunews: je pense que même si malkommalkom n'y est pas parvenu, il a au moins éssayé de faire qque chose, et même ce genre de programmes peut aider qqun (dont lui).
cs_dominion
Messages postés
230
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
15 mai 2008
-
Et pour finir (après j'arrête promis ;-)) je viens d'ouvrir le fichier crypté... J'ai tout de suite trouvé la méthode de cryptage sans avoir lu ton code... C'est pas bête mais très facile à casser...
Un petit conseil : mélange ! Si tu mélange en fonction de la clé, ça devient déjà plus difficile à casser, vu qu'on ne connait pas la place originale... Et en plus tu ne dois plus écrire la clé dans le fichier (enfin ça on te l'a déjà dit c'est très mauvais).
Bon ça ne vaudra jamais RSA hein je suppose que tu en est conscient, mais je trouve ça marrant.

Voilà cette fois je me tais en tout cas bonne continuation ;-).

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.