Paste Search Dynamic
xor
  1. #include <stddef.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. typedef unsigned char Byte;
  6.  
  7. void xor(char* file_name, char* key, char* file_crypt){
  8.  
  9.  
  10.     int cpt = 0;
  11.     size_t key_len;
  12.    
  13.     key_len = strlen(key);
  14.     FILE* fichier = fopen(file_name,"r");
  15.     FILE* fichier_crypt = fopen(file_crypt,"w");
  16.    
  17.     while (! feof(fichier)) {
  18.  
  19.         Byte c = fgetc(fichier);
  20.  
  21.         if (! feof(fichier)){
  22.               fputc(c^key[cpt % key_len],fichier_crypt);
  23.               cpt++;
  24.             }
  25.         }
  26.    
  27.     fclose(fichier);
  28.     fclose(fichier_crypt);
  29.  
  30. }
  31.  
  32. int main(int argc , char *argv[])
  33. {
  34.     if (argc < 4 )
  35.         return 1;
  36.  
  37.     xor(argv[1], argv[2], argv[3]);
  38.  
  39.     return 0;
  40.  
  41. }
Parsed in 0.005 seconds