Advertisement
tpaper

Untitled

Mar 4th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.09 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.     FILE *in,*out;  //puntatori ai file
  5.     in = fopen("contest_geemba_network_plus_bible.mp4","rb");   //file di input
  6.     out = fopen("contest_geemba_network_plus_bible.xor","wb");  //file di output
  7.  
  8.     char letto,cifrato;                         //byte letto e byte cifrato
  9.     int lunghezza_chiave = 5, puntatore = 0;    //lunghezza della chiave e puntatore al carattere corrente
  10.     unsigned long long int cifrati = 0;         //byte cifrati fino ad ora
  11.     char chiave[] = "secret";                   //chiave
  12.  
  13.     while( fread(&letto, sizeof(char), 1, in) == 1  ) {     //leggo byte per byte e memorizzo nella variabile char letto fino a EOF o errore
  14.         cifrati++;                                          //incremento il numero di byte cifrati fino ad ora
  15.         cifrato = letto^chiave[puntatore++];                //eseguo XOR fra il byte letto e il carattere attuale della chiave
  16.         fwrite(&cifrato, sizeof(char), 1, out);             //scrivo il byte cifrato
  17.         if (puntatore >= lunghezza_chiave) puntatore = 0;   //se ho finito la chiave ricomincio a leggerla dall'inizio
  18.     }
  19.  
  20.     printf("(De)Cifrati %llu byte\n",cifrati);              //Stampo il numero di byte cifrati o decifrati
  21.  
  22.     return 0;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement