Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12

    [C] Crittografare e decrittografare un file di testo

    Salve a tutti, stavo facendo una funzione C che permette la codifica e la decodifica di un file di testo, ma non riesco a capire il motivo per cui non riesco ad ottenere il risultato voluto . Uso l'operatore XOR perché in tal modo riesco a recuperare il valore originario al momento della decrittografia .
    Inoltre in questo punto riporta un warning che non so come risolvere...
    spero che qualcuno mi possa dare una mano.
    Di seguito il codice:
    codice:
    void crypt(char* filename_origin, char* filename_destination, int seed) { //DA VEDERE BENE
         
         FILE* fpr, *fpw;
         int i, num;
         int rnd; ////////
         char* buffer[BUFFERSIZE];
         
         srand(seed);
         
         if((fpr = fopen(filename_origin, "rb")) == NULL){
              fprintf(stderr,"Cannot open origin file\n");
    
    
              exit(1);
         }
         
         if ((fpw = fopen(filename_destination, "wb")) == NULL) {
              fprintf(stderr,"Cannot open destination file\n");
               exit(1);
        }
    
    
        while ((num = fread(buffer, 1, BUFFERSIZE, fpr)) != 0) {
    
    
            for(i=0; i < num; i++){
                rnd = rand();
    //            buffer[i] ^= rnd; //Invalid operands to binary ^
                buffer[i] = (char)((int) buffer[i] ^ rnd); //WARNING: ASSIGNMENT MAKES POINTER FROM INTEGER WITHOUT A CAST
                scanf("%c :   %d\n",buffer[i], rnd);
          }
            fwrite(buffer, 1, num, fpw);
        }
    
    
    //    fwrite(buffer, 1, num, fpw);
        fclose(fpr);
        fclose(fpw);
        
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Beh,

    char* buffer[BUFFERSIZE];

    è un vettore di puntatori a char non è un vettore di char ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12
    Risolto in un'altra maniera, grazie lo stesso

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Prego, ma non era questione di maniera ... in quel codice quello era un errore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12
    Fortunatamente il codice originario non era il mio

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12
    Scherzavo, come avevo fatto io non funziona .
    Sostituendo
    codice:
    char* buffer[BUFFERSIZE]
    con 
    char buffer[BUFFERSIZE]
    funziona?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Non devi chiedere se funziona o no ma capire cosa è

    char* buffer[BUFFERSIZE]

    e cosa è invece


    char buffer[BUFFERSIZE]

    E soprattutto, prova e dicci tu se funziona ...

    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.