Binääritiedostojen vertailu

Pudota kaksi tiedostoa, ja tämä sivu vertaa niitä tavu tavulta suoraan selaimessasi: jokainen eroava siirtymä, heksaero ympäröivine konteksteineen, erojen tiheyskartta ja bittitason analyysi, joka näyttää mitkä bitit muuttuivat. Erillinen lohkoihin kohdistettu tila tunnistaa lisäykset ja poistot tiedoston keskeltä — tapauksen, jota tavallinen tavuero ei voi kohdistaa. Tulokset viedään TXT- ja CSV-muotoon. Mitään ei lähetetä minnekään. Tavujen muokkaamiseen vertailun sijaan katso heksaeditori; tekstiin Tekstivertailu.
TIEDOSTO A
Pudota ensimmäinen tiedosto tähän tai klikkaa valitakseen
Enintään 200 MB. Pysyy tällä koneella.
TIEDOSTO B
Pudota toinen tiedosto tähän tai klikkaa valitakseen
Verrattu tiedostoon A.
Heksakonteksti jokaisen eron ympärillä:  — alle 16 tavun päässä toisistaan olevat erot näytetään yhtenä lohkona.
Vertailun yhteenveto näkyy tässä, kun molemmat tiedostot on valittu ja vertailtu.
Tavu tavulta -ero kohdistaa siirtymän N siirtymään N. Jos tavuja on lisätty tai poistettu keskeltä yhtä tiedostoa, kaikki sen jälkeen siirtyy, ja tavallinen ero raportoi koko hännän eroavaksi. Tämä tila tiivistää 1 KB:n lohkot, yhdistää ne tiedostojen välillä ja raportoi tuloksen kopiointi / lisäys / poisto -operaatioina — tavalla, jolla delta-työkalut kuten xdelta näkevät muutoksen. Käytettävissä, kun molemmat tiedostot ovat enintään 64 MB.
Yksityisyys: molemmat tiedostot luetaan selaimen omalla FileReader-rajapinnalla ja verrataan tässä välilehdessä — ei palvelinta, ei lähetystä, ei tallennusta. Suuret tiedostot verrataan 1 MB:n viipaleina, joten jopa 200 MB:n syötteet eivät ole koskaan kokonaan muistissa kerralla (paitsi jos ajat lohkoihin kohdistetun näkymän, joka lataa molemmat tiedostot työskennellessään).

Mikä on binääritiedostojen vertailu?

Binäärivertailu asettaa kaksi tiedostoa linjaan tavusta 0 ja etenee eteenpäin ja raportoi jokaisen siirtymän, jossa tavut eroavat — selaimen vastine klassiselle cmp -l-komennolle. Tekstin eroavat työkalut eivät pysty tähän: ne joko kaatuvat tulostamattomiin tavuihin tai tulkitsevat tiedoston hiljaa uudelleen jossakin merkistökoodauksessa. Binäärivertailu käsittelee molemmat tiedostot juuri sellaisina kuin ne ovat, tavutaulukoina, mikä on oikea tapa laiteohjelmistokuville, levyvedoksille, tietokantatiedostoille, salatuille lohkoille tai mille tahansa tiedostolle, jonka muotoa et tunne.

Kolme kysymystä vastataan kolmella eri syvyydellä. “Ovatko ne samat?” on tarkistussummakysymys — työkalu vastaa siihen nopeimmin, mutta vain kyllä tai ei. “Missä ne eroavat?” on tämän sivun tavuero: siirtymät, arvot ja mitkä bitit kääntyivät. “Millaisesta muutoksesta on kyse?” on se, minkä lohkoihin kohdistettu näkymä lisää — onko ero paikallinen muokkaus, lisätty pala vai poistettu pala.

Tavu tavulta -ero vs lohkojen kohdistus — miksi kaksi näkymää?

TilanneTavu tavulta -ero sanooLohkoihin kohdistettu näkymä sanoo
Kenttä ylikirjoitettiin paikallaan (sama tiedostokoko) muutama hajallaan oleva eroava siirtymä sama, plus “kaikki muu kopioituu”
1 kt lisättiin tiedoston B siirtymään 2000 kaikki 2000:sta eteenpäin “eroaa” kopioi 0–2000, lisää 1 kt, kopioi loput
Lohko poistettiin tiedoston B keskeltä kaikki siitä eteenpäin “eroaa” kopioi aukkoon asti, poista N tavua, kopioi loput
Tiedosto B on tiedosto A:n eri otsikolla varustettuna koko tiedostot “eroavat” poista otsikko, sitten yksi pitkä kopio — eli vakiosiirtymä

Tavuero on aina oikea — nuo tavut todella eroavat noissa siirtymissä. Tulkinta siirtyy kuitenkin, kun tavuja on lisätty tai poistettu, aivan kuten tekstitiedoston alkuun lisätty rivi muuttaa jokaisen seuraavan rivin numeron.

Miten bittitason analyysi luetaan

Jokaiselle eroavalle tavulle tämä sivu laskee A XOR B ja laskee, mitkä bittipaikat ovat asetettuja. Tuo histogrammi on yllättävän ilmeikäs: erot, jotka keskittyvät bittiin 0 (jokaisen tavun vähiten merkitsevään bittiin), ovat LSB-steganografian sormenjälki, jossa viesti piilotetaan hienosäätämällä pikselien tai ääninäytteiden matalinta bittiä. Erot, jotka jakautuvat tasaisesti kaikkiin kahdeksaan paikkaan, tarkoittavat, että kokonaisia arvoja on kirjoitettu uudelleen. Erot, jotka koskettavat vain korkeita bittejä, tarkoittavat yleensä, että yksi kenttä on korvattu hyvin eri suuruisella arvolla. Hamming-etäisyys (käännettyjen bittien kokonaismäärä) kvantifioi saman yhdellä luvulla.

Yksi rehellinen varoitus: satunnaisdata osuu mihin tahansa tavuun todennäköisyydellä 1/256, joten kaksi toisiinsa liittymätöntä samankokoista tiedostoa täsmää silti noin 0,4 %:ssa tavuista. Yhdenmukaisuus 99,98 % ja muutama lyhyt eroava lohko on paikkaustason muutos; yhdenmukaisuus 0,4 % tarkoittaa, että tiedostot ovat yksinkertaisesti toisiinsa liittymättömiä.

Yleisiä virheitä

“Koko tiedosto on punainen ensimmäisen eron jälkeen.” — tuo on yllä kuvattu siirtymisvaikutus, ei todellinen vioittuminen. Aja lohkoihin kohdistettu näkymä: jos se raportoi yhden lisäyksen ja kaksi pitkää kopiointioperaatiota, tiedostot eroavat tasan tuon lisätyn palan verran. “Tarkistussummat täsmäsivät, mutta tiedostot eroavat tässä.” — jos SHA-256-tiivisteet täsmäävät, tiedostot eivät eroa; tarkista, että avasit samat tiedostot molemmilla työkaluilla. CRC-32-täsmäys puolestaan ei todista mitään tarkoituksellista törmäystä vastaan. “Yhdenmukaisuus 0,4 %, mutta muutin vain yhtä asiaa.” — jos muutokseen oli pakatussa tai salatussa säiliössä (ZIP, PNG zTXt, salattu taltio), yksi looginen muutos kirjoittaa uudelleen koko pakatun virran.

UKK

Mikä on kokoraja? — 200 MB tiedostoa kohden tavueroon, vertailtuna 1 MB:n viipaleina. Lohkoihin kohdistettu näkymä lataa molemmat tiedostot, joten se on rajattu 64 MB:iin per puoli.
Tunnistaako se siirretyt palat? — kohdistin vastaa lohkoja järjestyksessä; eri paikkaan siirretty pala näkyy poistona ja lisäyksenä saman sisällön kanssa, mikä on oikea, joskin hieman karkea kuvaus.
Voiko se tuottaa paikkatiedoston? — ei, se on analyysityökalu; CSV- ja TXT-raportit ovat dokumentointiin ja tarkasteluun, eivät muutosten soveltamiseen.
Mitä tiedostoilleni tapahtuu? — ei mitään: ei palvelinta, ei tallennusta, ei analytiikkaa; sulje välilehti, ja jokainen syötteen tavu on poissa.