Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PETIT PROG DE CRYPTAGE


Information sur la source

Description

Il permet de crypter et de décrypter des fichier texte simple.
Svp si quelqu'un sert comment ouvrir un fichier en binaire peut il m'envoyé la source avec ouverture et enregistrement de fichier en binaire.
 

Source

  • #include <fstream.h>
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <string.h>
  • int conv(char a)
  • {
  • int n;
  • n=0;
  • while((char)n!=a)
  • n++;
  • return(n);
  • }
  • int main(int argc, char **argv)
  • {
  • char clef[255];
  • int lon;
  • int ok;
  • int enc;
  • ok=1;
  • if(argc<2)
  • {
  • cout << "Pour convertir un fichier il faut le faire glisser sur l'icone du programme dansl'explorateur. Vous pouver aussi le definir en tant que programme ouvrant un\ncertain type de fichier.\n";
  • ok=0;
  • }
  • if(ok==1)
  • {
  • cout << "Clef:";
  • lon=0;
  • cin.get(clef,255);
  • cout << "Encodage=1, decodage=2:";
  • cin >> enc;
  • if(enc!=2&&enc!=1)
  • {
  • cout << "Mauvais choix!\nLe fichier ne sera pas modifier.\n";
  • ok=0;
  • }
  • else
  • if(enc==2)
  • enc=-1;
  • if(ok==1)
  • {
  • lon=strlen(clef);
  • int fich;
  • fich=0;
  • while(fich<argc-1)
  • {
  • fich++;
  • cout << argv[fich];
  • char ch;
  • int v;
  • v=0;
  • int h;
  • h=0;
  • int r;
  • char fi[255]="c:/windows/temp/temp.txt";
  • ofstream fout(fi);
  • fout << "";
  • fout.close();
  • ifstream fin(argv[fich]);
  • if(fin) // existe déjà ?
  • {
  • while (fin.get(ch))
  • {
  • h=conv(clef[v]);
  • r=conv(ch)-h*enc;
  • if(r<255)
  • r=r+255;
  • if(r>255)
  • r=r-255;
  • fout.open(fi, ios::app);
  • fout << (char)(r);
  • fout.close();
  • v++;
  • if(v>=lon)
  • v=0;
  • }
  • fin.close();
  • fout.open(argv[fich]);
  • fin.open("c:\\windows\\temp\\temp.txt");
  • if(fin) // existe déjà ?
  • while(fin.get(ch))
  • {
  • fout << ch;
  • }
  • else
  • cout << "c:/windows/temp/temp.txt absent.";
  • fin.close();
  • fout.close();
  • cout << " OK\n";
  • }
  • else
  • cout << " Erreur.\n";
  • fin.close();
  • }
  • }
  • }
  • system("PAUSE");
  • return 0;
  • }
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int conv(char a)
{
 int n;
 n=0;
 while((char)n!=a)
 n++;
 return(n);
}

int main(int argc, char **argv)
{
  char clef[255];
  int lon;
  int ok;
  int enc;
  ok=1;
   if(argc<2)
   {
  cout << "Pour convertir un fichier il faut le faire glisser sur l'icone du programme dansl'explorateur. Vous pouver aussi le definir en tant que programme ouvrant un\ncertain type de fichier.\n";
  ok=0;
  }
   if(ok==1)
   {
   cout << "Clef:";
   lon=0;
   cin.get(clef,255);
   cout << "Encodage=1, decodage=2:";
   cin >> enc;
   if(enc!=2&&enc!=1)
   {
   cout << "Mauvais choix!\nLe fichier ne sera pas modifier.\n";
   ok=0;
   }
   else
   if(enc==2)
   enc=-1;
   if(ok==1)
   {
   lon=strlen(clef);
   int fich;
      fich=0;
      while(fich<argc-1)
      {
   fich++;
   cout << argv[fich];
   char ch;
   int v;
   v=0;
   int h;
   h=0;
   int r;
   char fi[255]="c:/windows/temp/temp.txt";
   ofstream fout(fi);
   fout << "";
   fout.close();
   ifstream fin(argv[fich]);
         if(fin)                       // existe déjà ?
     {

         while (fin.get(ch))
         {
              h=conv(clef[v]);
              r=conv(ch)-h*enc;
              if(r<255)
              r=r+255;
              if(r>255)
              r=r-255;
              fout.open(fi, ios::app);
              fout << (char)(r);
              fout.close();
              v++;
              if(v>=lon)
              v=0;
        }
                fin.close();
        fout.open(argv[fich]);
      fin.open("c:\\windows\\temp\\temp.txt");
      if(fin)          // existe déjà ?
      while(fin.get(ch))
         {
          fout << ch;
         }
         else
         cout << "c:/windows/temp/temp.txt absent.";
         fin.close();
         fout.close();
         cout << " OK\n";
        }
        else
        cout << " Erreur.\n";
    fin.close();
    }
    }
   }
   system("PAUSE");
  return 0;
}

Conclusion

Svp si quelqu'un sert comment ouvrir un fichier en binaire peut il m'envoyé la source avec ouverture et enregistrement de fichier en binaire.
Comme ça je pourai encoder n'inporte quel fichier.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • CD2.EXETélécharger ce fichier [Réservé aux membres club]93 184 octets
  • CPP2.CPPTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 064 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de JCDjcd le 22/10/2003 14:18:18

Ouverture d'un fichier en binaire :

fopen("fichier.txt","wb"); // pour ecrire
fopen("fichier.txt","rb"); // pour lire
fopen("fichier.txt","wb+rb"); // pour ecrire et lire

signaler à un administrateur
Commentaire de garslouche le 22/10/2003 14:21:24

hou là.... poue écrire et lire : "r+b"

signaler à un administrateur
Commentaire de Juntao le 23/10/2003 12:46:11

'Lut,

Que fait la fct conv() utilise dans cette source ??
Ou peut on trouver des infos dessus ??

Merci

++

signaler à un administrateur
Commentaire de JCDjcd le 24/10/2003 11:50:27

Heu regarde la premiere fonction ... ce doit etre elle non ?

signaler à un administrateur
Commentaire de Gerald le 26/10/2003 14:38:18

nan fopen c du C, là on se sert des stream d'entree/sortie:
il faut faire
ofstream fout(fi, ios::binary);
et
ifstream fin(argv[fich], ios::binary);
pour lire et ecrire il faut rajouter "|ios::in | ios::out" apres le binary:
ifstream fin(argv[fich], ios::binary | ios::in | ios::out);

signaler à un administrateur
Commentaire de flo. le 27/10/2003 20:33:21

la fonction int conv(char) elle fais juste un cast,
à la place de :

h=conv(clef[v]);

tu aurais pu mettre

h=(int)((unsigned char)clef[v]);

signaler à un administrateur
Commentaire de Juntao le 27/02/2004 10:33:53

@JCDjcd

Merci, gv po fait gaffe, dsl pour la question :\

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,995 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.