home *** CD-ROM | disk | FTP | other *** search
/ Dream 61 / Amiga_Dream_61.iso / magazine / prog-c / decrypt.c < prev    next >
C/C++ Source or Header  |  1999-03-09  |  1KB  |  50 lines

  1. /* exemple de recherche de clé */
  2.  
  3. #include <stdio.h>
  4.  
  5. void    main(int argc, char **argv)
  6. {
  7.     FILE            *In,*Out;
  8.     unsigned char   byte1,byte2;
  9.     int             i;
  10.  
  11.  
  12.     /* Validation de la ligne de commande */
  13.     if (argc != 3)
  14.     {
  15.         printf("\nUsage : %s <fichier non crypté> <fichier crypté>\n",argv[0]);
  16.         exit(0);
  17.     }
  18.  
  19.     /* Ouverture en lecture binaire du fichier source */
  20.     if ((In = fopen(argv[1], "rb+")) == NULL)
  21.     {
  22.         printf("Fichier %s introuvable !\n",argv[1]);
  23.         exit(-1);
  24.     }
  25.  
  26.     /* Ouverture en lecture binaire du fichier destination */
  27.     if ((Out = fopen(argv[2], "rb+")) == NULL)
  28.     {
  29.         printf("Fichier %s impossible à créer !\n",argv[2]);
  30.         fclose(In);
  31.         exit(-1);
  32.     }
  33.  
  34.     /* Opération de recherche de clé par XOR */
  35.     fread(&byte1,1,1,In);
  36.     fread(&byte2,1,1,Out);
  37.  
  38.     i = 0;
  39.     while (((byte1^i) != byte2) && (i<256))
  40.         i++;
  41.  
  42.     if (i<256)
  43.         printf("\nLa clé est : %d\n",i);
  44.     else
  45.         printf("\nAucune clé trouvée\n");
  46.  
  47.     fclose(In);
  48.     fclose(Out);
  49. }
  50.