Kezdőoldal » Számítástechnika » Programozás » Jelentősen gyorsabb két fájlt...

Jelentősen gyorsabb két fájlt hashelni majd a kapott hasht összehasonlítani, mint a két fájlt bitenként?

Figyelt kérdés

2015. okt. 9. 17:24
1 2
 1/12 coopper ***** válasza:

Szia.


Bitenként ? Talán bájtonként.


És a válasz Nem.


Mivel ha a két fájlt bájtonként hasonlitod össze (kódszervezés lérdése) de az első eltérő bájtnál ki kell lépned eltérő fájl üzenettel.


A másik dolog, meg ahhoz hogy megkapd a hash-t ahhoz mindkét fájlt be kell teljesen olvasni. (Már egy jelentős eltérés lehet itt)


A bájtonkénti elenőrzés során is be kell olvasni a két fájlt (a legrosszab esetben ha a két fájl csak az utolsó bájton tér el egymástól).


Illetve a hash "gyártás" nem egy sima összehasonlitás ott több művelet van mint egy összehasonlitás (bár modjuk Hash algoritmustól is függ).


De akkor is gyorsabb két fájl bájtonkénti összehasonlitása mint két fájl bájtonkénti hash generálása és aztán ezen hashok összehasonlitása.


Sok sikert.

üdv.

2015. okt. 9. 18:09
Hasznos számodra ez a válasz?
 2/12 anonim ***** válasza:
Viszont ha a hash már megvan akkor gyorsabb lehet csak 1 fájlt beolvasni és elhashelni mint mind a kettőt beolvasni és bitenként összehasonlítani. A hashnek előnye hogy nem kell tárolni egy másolatot az eredeti fájlról, és ha nem egyezik a kettő akkor szinte biztosra meg tudod mondani hogy nem a hash a rossz hanem a tesztelt fájl, míg a bit-összehasonlításnál az eredeti fájl is könnyen korruptálódhat.
2015. okt. 9. 18:30
Hasznos számodra ez a válasz?
 3/12 SimkoL ***** válasza:
Ha a két file mérete egyforma és el is fér mindkettő együtt a memóriában, akkor én betolnám mindkettőt egy-egy MemoryStream-be és egy CompareMem függvénnyel - (Delphi, C++) - összehasonlítanám.
2015. okt. 9. 18:59
Hasznos számodra ez a válasz?
 4/12 A kérdező kommentje:
Köszi a válaszokat, megtudtam amit akartam.
2015. okt. 9. 19:17
 5/12 A kérdező kommentje:

Illetve még annyi kérdés lenne, hogy az MD5 fájl összehasonlításra megfelel, szinte esélytelen, hogy két azonos hash generálódjon? Mert ugye jelszavakhoz már nem használják, de nem tudom mennyire lenne szükséges egy fájl SHA-512 hashelni.


A cél az, tegyük fel van 1000 fájl amivel dolgozok, de előfordulhat, hogy 2 vagy több másolat is van, de csak az egyiken akarom a műveletet végrehajtani. Egyszerű szemléltetés kedvéért minek töltsem fel a szerverre ugyan azt a fájlt többször.

2015. okt. 9. 20:54
 6/12 anonim ***** válasza:
A hash nem erre való, ebből nem tudod megállapítani, hogy a két fájl tartalmilag egyezik-e. Csak ha eltér akkor tudod kizárni a tartalmi egyezést. Pont fordítva akarod használni, mint ahogy kéne.
2015. okt. 9. 21:13
Hasznos számodra ez a válasz?
 7/12 A kérdező kommentje:
Ha van 2 txt fájlom és a szavak sorrendje nem azonos az nálam már nem egyezésnek számít így tudom ellenőrizni vele. A kérdés az, hogy az MD5 alkalmas rá?
2015. okt. 9. 21:32
 8/12 coopper ***** válasza:

Szia.


Minnél nagyobbak a fájl méretek annál nagyobb az esélye annak, hogy két egyforma hash generálódik (ez az MD5 hash hosszából adódik, ez mindegyik Hash-ra vonatkozik).


Tehát az MD5 hash kimenete 32 karakter hosszú. Ebben az esetben csak egy biztos dolog van, hogy ha Hash-elt tartalom kisebb vagy egyenlő 32 karakterrel (fájlméret vagy string) akkor biztosan nem lesz egyezés, de mihelyt 32 karakter fölé megy a hossz, elviekben igy sem lesz egyezés, de ez innentől kezdve nem meghatározható, és bármikor előfordulhat egyezés is.


Sok sikert.

üdv.

2015. okt. 9. 21:40
Hasznos számodra ez a válasz?
 9/12 A kérdező kommentje:
Az MD5 kimenetele 16 byte, csak hexadecimálisan az kiírva 32 karakter hosszú.
2015. okt. 9. 22:24
 10/12 anonim ***** válasza:

"Illetve még annyi kérdés lenne, hogy az MD5 fájl összehasonlításra megfelel, szinte esélytelen, hogy két azonos hash generálódjon?"

Ha ezek nem buherált fájlok, akkor igen, megfelel az MD5 fájlok összehasonlitására, szinte esélytelen, hogy 2 különböző fájlnak ugyanaz legyen a hash-e.

Viszont ha ez a fájl nem megbizható forrásból jön, akkor előfordulhat, hgoy direkt úgy preparálták, hogy stimmeljen a hash az érintetlen fájllal, tehát pl netről letöltött Windows telepitő ISO-nál sztem ne csak az MD5 hash-t nézd meg.

2015. okt. 9. 23:28
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!