|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2007
Città: Monopoli(BA)
Messaggi: 218
|
[C]-controllo su corruzione file
Vi spiego la situazione...devo leggere un file binario in cui ci sono salvate una serie di dati strutturati.
Il mio problema sta nel controllare al caricamento se il file non é stato corrotto ad esempio se qualcuno ha aperto il file e ha inserito caratteri a cavolo. Quindi penso di creare una funzione in cui apro il file e controllo che in ogni variabile ci sia un dato valido. Il dubbio è: come faccio a controllare che in un int c'è sempre un intero e così via???? Vi ringrazio Ciaoooo
__________________
NOSTRAVIS PRO CLASSEM - GrupAer - |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Se hai scritto delle strutture in un file, ne hai scritto solo i dati, non il tipo. Rileggendo i dati con la stessa struttura, ti ritrovi nuovamente le strutture che avevi prima. Dal momento che hai scritto solo i dati e non il loro tipo, se modifichi un dato questo rimane sempre valido. Un intero di due byte è sempre un intero di due byte, che tu ci scriva XX, YY, (&, CI, CO, PU, 31, /$, !H, ecc.. ecc...
L'unico modo per verificare che i dati non siano stati alterati è quello di utilizzare un'impronta digitale, meglio nota come "digest". Dopo aver scritto i tuoi dati, ne invii la loro rappresentazione binaria ad una routine denominata hash, che produrrà il digest, quindi accoderai quest'ultimo ai tuoi dati. In fase di lettura, passerai nuovamente i dati binari letti dal file alla funzione hash e verificherai che il digest restituito corrisponda a quello salvato nel file. Una modifica casuale dei dati o del digest comporterà un'incongruenza tra questi e ti consentirà di verificarne l'integrità. Questo sistema assicura l'integrità di un file soggetto a disturbi, ma non previene manomissioni da parte di un hacker, poiché questi potrebbe modificare i dati, rigenerare il digest e sostituirlo a quello originale. Per ovviare a questo problema, prima di generare il digest si combinano i dati con una password (che non verrà scritta nel file), in tal modo solo conoscendo la password sarà possibile generare il digest corretto. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:58.



















