Avatar billede aslan Nybegynder
16. oktober 2005 - 08:53 Der er 7 kommentarer

Kontroller at 2 filer er identiske?

Er der en sikker og hurtig måde at tjekke om 2 filer er identiske? Det er 200 filer mod måske 200 andre jeg skal tjekke imod og der må helst ikke gå mere end et par minutter. Jeg er ikke interesseret i forskellen.
Avatar billede krydset Nybegynder
16. oktober 2005 - 09:07 #1
Avatar billede krydset Nybegynder
16. oktober 2005 - 09:07 #2
2 ens filer har den samme md5 sum, er md5 summen forskellig er filerne osse forskellige
Avatar billede jakoba Nybegynder
16. oktober 2005 - 09:12 #3
IO tid (for at læse fra disk) vil under alle omstændigheder være den store tidssluger det gør ikke den helt store forskel hvadfor en algoritme du bruger.

første trim i sammenligning bør være at sammenligne filstørrelse, hvis du er heldig er den forskellig og så slipper du for at læse de to filer.
åben filerne som binary i en bufferedReader og shift evt 4 bytes sammen til en int før du sammenligner. måske man endda kan indlæse 4 byte direkt i en int (ikke stiv i Java io) men så skal du holde øje med slutningen hvor der måske kun er 2 eller 3 byte tilbage.
Avatar billede jakoba Nybegynder
16. oktober 2005 - 09:17 #4
krydset >>
md5 sammenligning er ikke 100% sikker. forskellige filer kan godt give samme md5 hash.
og md5 er ikke helt billig at regne sammen.
Avatar billede krydset Nybegynder
16. oktober 2005 - 09:18 #5
Okay vidste jeg ikke. Bare et foreslag

hvad mener du me det her
og md5 er ikke helt billig at regne sammen.
Avatar billede jakoba Nybegynder
16. oktober 2005 - 09:22 #6
filen skal læses og bytes i den skal så xor'es sammen på kryds og tværs:
http://www.faqs.org/rfcs/rfc1321.html
Avatar billede arne_v Ekspert
16. oktober 2005 - 15:20 #7
risikoen for MD5 kollision er nok til at leve med (1 ud af 2^128 eller ca. 1 ud af 10^38)

men der er ligesom ikke rigtig nogen pointe - hvis man alligevel skal læse
begge filer så kan man lige så godt checke data - MD5 kan give mening hvis
man har gemt MD5 for den ene fil så man ikke skal beregne dden - eller
hvis man har brug for envejs egenskaberne (password i databaser)

sammenlign størrelse og hvis de er ens så læs data fra begge file i meget store klumper
og afbryd ved første forskel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester