Newsgroup: it.comp.sicurezza.windows
Titolo: Integrità dei file & MD5

Salve, qualcuno sa come si determina l'integrità di un file dopo un
restore da unità di backup?
Da uno streamer ho recuperato un file di circa 4Gb. Un altro identico
(l'originale) l'ho trovato qualche giorno dopo nel mio hard disk. Stessa
dimensione. Li ho controllati entrambi con quei programmi che calcolano
l'MD5 ma i codici sono differenti, segno che il file recuperato dal
restore non è uguale all'originale.
Se due files identici in apparenza (stesso num. byte) hanno codice MD5
diverso significa che uno dei due è corrotto? Eppure entrambi li ho aperti
(erano due grossi file ISO) e sembra che i loro contenuti siano
perfettamente identici (stesso num.
byte, directory, file).
Che relazione passa tra MD5 e integrità di un file? Quali software
utilizzare per valutare l'integrità o la corruzione di un file?
Poi, scusate ma cosa centra l'MD5 con l'integrità di un file? L'MD5 non
riguarda la crittografia di un file? Allora perchè lo si usa anche per
determinare se un file è corrotto?
Grazie.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

determinare se un file è corrotto?
L'MD5 ha due caratteristiche: detto alla grezza, un cambiamento in un
blocco di byte determina un cambiamento nell' MD5 del blocco; e, dato
un MD5 e un blocco, e' difficilissimo calcolare una modifica, su byte
selezionati nel blocco, che generi l'MD5 voluto.
Questa seconda caratteristica e' utile crittograficamente, perche' ci
dice che non posso impestare/modificare un file e poi farne ritornare
l'MD5 al valore originario.
La prima caratteristica individua invece le mutazioni ACCIDENTALI, ad
esempio casini da un backup.
Il lato negativo, e' che il cambio dell'MD5 non ti dice QUANTO cambia
il pool di dati hashato. Potrebbe essere un byte; potrebbe essere due
terzi dell'ISO.
Leonardo
-- 
In nessun caso Microsoft, o i suoi fornitori, saranno responsabili per
[...] omissione di rispetto di obblighi, incluso quello di comportarsi
in buona fede o ragionevole diligenza
                                     -- Contratto di Licenza Microsoft

 e poi lanciare una comparazione ricorsiva di ciascun file.
quale programma conosci che è in grado di lanciare automaticamente una
comparazione ricorsiva di ciascun file e riportare i risultati? Ne conosci
qualcuno?
e poi..., scusa la mia ignoranza, cos'e la "comparazione ricorsiva"?
Ho a che fare con circa 10.000 files!. Non vorrei passarci tutta la vita..
Scherzo!
Per me è importante sapere se esistono files all'interno dell'ISO che
siano corrotti. Ho notato che il mio streamer restituisce sempre grossi
file (ISO) che non sono mai identici (prova-MD5) all'originale, poichè il
software corregge automaticamente gli errori che inevitabilmente si
verificano durante il restore.
Il montaggio delle due immagini ISO l'ho fatto ed anche una comparazione
diciamo "terra-terra" cioè:
tasto destro del mouse/proprietà/"dimensioni" e "contenuto"
ma tale controllo non mi dice se ci sono files corrotti (anche se il num.
byte/cartelle/files sono perfettamente identici)
Ciao e grazie


 qualcuno?
ciao,
 non ho mai dovuto fare una cosa simile ma forse ti può aiutare il comando
fc: (help fc)
    fc unità1:\percorso1\*.* unità2:\percorso2\*.*
spero possa servire,
patrick.

 fc: (help fc)
Si grazie, l'ho appena provato e sperimentato comparando due files. Quando
i files oggetto del controllo sono diversi mi restituisce una "processione
di simboli irriconoscibili".
Sto cercando qualche programma per Windows che effettua meglio la
comparazione.
Finora niente... Bye


 comparazione.
C'č una applicazione linux RCS (Sourse Code Control System).
Magari su Google puoi trovare un "rcs linux for windows"
Saluti, Anto
--
Allacciatevi alla vita. [Servizio Autostrade]
http://swpat.xsec.it/

 comparazione.
diff esiste anche per windows e con l'opzione -q ti dice solo se i file
differiscono.
Altrimenti c'e' windiff...
diff lo trovi qui 
http://unxutils.sourceforge.net/
 assieme ad un mucchio
di altra roba.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Altrimenti c'e' windiff...
Ottimo. Utilissimo, grazie. Subito sperimentato!
Vado ad aprire le due immagini ISO che apparentemente sembravano uguali e
che scopro?
Processo tutte le directory di entrambi gli ISO con WINDIFF e .....
sorpresa..
un file RAR da 300 Mb è diverso (rosso secondo WINDIFF). Cerco di
decomprimerlo ma non ci riesco. Il file è corrotto! Era contenuto nell'ISO
proveniente da nastro....
Scusa Angelo, mica sai a cosa serve il comando "Ignore blanks" di WINDIFF.
Selezionandolo, nel confronto tra i due file ogni tanto compaiono degli
spazi bianchi tra righe considerate IDENTICHE (nere). Non selezionandolo,
tali spazi bianchi non compaiono e le righe IDENTICHE corrono una dopo
l'altra nel programma WINDIFF. 
Nell'help è riportato quanto segue: "Ignore blanks causes white space
characters (space, tab, newline) to be ignored in the expanded view, so
that lines which differ only in white space are shjown as identical."
Ai fini della corruzione di un file a che serve la linea bianca?
righe nere - files identici
righe rosse - files diversi (corrotti)
righe bianche? - le parti dei files che corrispondono alle righe bianche
non sono corrotti?.
Ciao


qualcuno?
Ummm... forse PowerGREP. Alternativamente, mi scriverei uno scriptino
bash che puo' girare su Windows a patto di installarci la bash. Trovi
il necessario sul sito di Cygwin.
#!/bin/sh
if [ -z "$2" ]; then
	echo "Sintassi: [absolute]cmpall absolutedir1 absolutedir2"
	echo "Es.: /usr/local/bin/cmpall /mnt/disco1 /mnt/disco2"
	exit 1
fi
if [ ! -d "$1" ]; then
	echo "$1 non è una directory"
	exit 2
fi
if [ ! -d "$2" ]; then
	echo "$2 non è una directory"
	exit 3
fi
cd "/$1"
LIST1="$( ls -A | tr ' ' '§' )"	# TMTOWTDI
cd "/$2"
LIST2="$( ls -A | tr ' ' '§' )"
if [ "$LIST1" != "$LIST2" ]; then
	echo "La directory $1 e la directory $2 sono diverse."
	exit 4
fi
echo "Controllo $1 - $2..."
for file in $LIST1; do
	NAME="$( echo $file | tr '§' ' ' )"
	if [ -d "$NAME" ]; then
		$0 "$1/$NAME" "$2/$NAME"
	else
		MD51=$( md5sum -b "$1/$NAME" | cut -f1 -d ' ')
		MD52=$( md5sum -b "$2/$NAME" | cut -f1 -d ' ')
		if [ $MD51 != $MD52 ]; then
			cat <<< GRUNT
----
^V^G^V^G^V^GI file $1/$NAME e $1/$NAME sono diversi
----
GRUNT
		fi
	fi
done
 
Leonardo che fa icché pòle
-- 
the shadow of the dome of pleasure
floated midway on the waves,
where was heard the mingled measure
from the fountain and the caves.

 Ai fini della corruzione di un file a che serve la linea bianca?
Che ci sono solo spazi bianchi (a capo, blank, tab), inutile dirti che
i file binari anche se differiscono solo per gli spazi bianchi sono
differenti.
