Jobb helyet nem találtam a kérdésemnek. Egyébként meg azt hiszem túl régóta vagyok rendszergazda.
Követem egy Lengyel fotográfus munkáját. Naponta zip-ben lehet letölteni a képeit. Ma rsync-el frissítettem a másik gépen található backup-ot. Ekkor vettem észre hogy az egyik ilyen zip két helyen is megvan.
Mezei user az állomány hosszának ellenörzése után törölné az egyiket. Power user-ként nekiestem md5sum-al ellenőrizni, ugyanaz-e a kettő. Persze nem, holott utólag megnézve hosszra ugyanaz a kettő. Akkor az egyik sérült lehet. Próba kitömörítés, mindkettő sértetlen, ugyanazok az állományok vannak benne. Egyre gyanusabb.
Képek md5sum értékei különbözőek a két zip-ből. Hosszra pedig itt is egyezés van. Úgy jelenítettem meg azokat, hogy space vált közöttük, de akárhogyis, egyezőnek látom azokat.
Aha! Biztos az EXIF-ben van valami. Részletes megjelenítés, de itt is egyezés van.
Egyre morcibb vagyok, dd if=kep1 of=resz1 bs=1024 count=2 és kep2-re ugyanígy egyeznek a részek.
Ha se az eleje, se a vége (EXIF) nem tér el, hosszra megegyeznek, vizuálisan ugyanazok, akkor miben tér el a két kép? md5sum árulkodik... Ilyen titkosítás kell nekem! :)
Tudom, hibáztam az elején, elég lett volna az 'ls -l', kellett nekem md5sum-al kezdenem.
Hozzászólások
Miért csak az elejét és a végét nézed? Minden egyes byte-ot össze kellene hasonlítani, nem?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
Közepén elvileg a kép nem térhet el, annak nem látom értelmét. Vizuálisan megnézve legalábbis ugyanaz a két kép. Tudom, vannak kódolások amik pont arra építenek hogy a szem úgysem látja a különbséget. Feltéve, hogy a pixelek szinben nagyon hasonlítanak és viszonylag távol vannak egymástól.
Egyébként tudom, minden byte-ot össze kellene hasonlítani. Bináris diff-em nincs, hogy ezt megtegyem.
A cmp parancs bináris különbséget keres. És valóban, ha a színárnyalat LSB-jét megváltoztatod, azt nem valószínű, hogy észre lehet venni.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
Ott a pont, bár nem derül ki hogy a cmp kiírja-e az összes különbséget vagy csak az elsőt.
gcs@julia:~$ cmp 1/STW018755.jpg 2/STW018755.jpg
1/STW018755.jpg 2/STW018755.jpg differ: byte 18572, line 66
Megnézem mit mondanak a keresők a cmp parancsról. man lap nem segített hogy mennyi darab különbséget jelenít meg.
Esetleg atalakitod hexara, utana mar jo a sima diff is.
(man od, esetleg beyond compare)
--
My gold plated butt-plug business is being sued by Apple.
Apparently they have a patent for overpriced crap for arseholes.
Látod, ez erősen 2 kB-on túl van. Szerintem cmp -l file1 file2 elkezdi felsorolni a különbségeket. Mindamellett, ha csak egyetlen byte is eltér, máris más lesz a hash.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
cmp első különbség után kilép, ha végig ért, akkor meg 'return 0'. csak arra lett kitalálva, hogy eldönthesd, különbözik-e a két file. persze az, hogy a GNU verzió mit csinál, már más kérdés.
Továbbá témához: https://en.wikipedia.org/wiki/Steganography#Digital
--------------------------------------
Unix isn't dead. It just smells funny.
man cmp :)
"Output byte numbers and values of all differing bytes." a -l vagy --verbose esetén.
+1
Bár volt man cmp, éjfélkor nem volt jó a parse.
cmp parancs -x opcioja kell neked binaris osszehasonlitasra. Az osszes kulonbozo bajtot latni fogod.
Opsz, latom ezt mar mas is mondta. No nem baj, az x opcio akkor is ujdonsag (en pl. az l-et nem ismertem)
Nem tudom hogy ugyanaz van-e itt is, de a gzip tárolja emlékeim szerint a timestamp-et, ezért minden egyes gzip tömörítés ugyanazon az adaton más hash-t eredményez. Sejtem itt is ez lesz:
Pont ezért tömörítettem ki. Képeket külön is ellenőriztem md5sum-al és már azok eltérnek. Kérlek olvasd át még egyszer az eredeti kiírást. Ott benne van hogy a végén lévő EXIF adatok és az első 2048 byte is ugyanaz egy kiragadott kép esetén. Hosszra is megegyeznek, de mégis más az md5sum értékük.
Értem. Akkor esetleg "man compare" (ImageMagick)
Vannak digitalis vizjelezesi eljarasok, lehet, hogy azota ellatta ilyennel a kepeit.
Pl. kivancsi, hogy hol tunnek fel kesobb a kepei, esetleg egy ceg egy bottal figyeli a netet. Vagy erdekli, hogy hol akarjak felhasznalni a muveit - ha olyan jellegu, akkor jogdij nelkul.
Nem trivialis, de elvileg lehet csinalni olyan digit. vizjelet, ami bizonyos kepmanipulacioknak (nyilvan nem mindnek) ellenall, es nagyon nehez kimagyarazni, ha "teljesen veletlenul" megjelenik valahol.
--
My gold plated butt-plug business is being sued by Apple.
Apparently they have a patent for overpriced crap for arseholes.
Ha fotós, akkor valószínűleg rawban fényképez, amit később jpg-re konvertál amikor letölthetővé teszi. Elképzelhető, hogy a kép kétszer lett konvertálva valamilyen okból (apró módosítás a színekkel pl) ami eredményezheti ezt (teljesen ugyanaz a hossz, csak valahol más érték van valami más helyett).
Hibázik a memóriád, rossz a merevlemez csatlakozó, alulfeszelt processzor, gyenge táp? Előbb ezeket, jártam már én is így :-)
---
Többszöri ellenőrzés után is ugyanaz a helyzet. Átrakva másik gépre szintén. :)
mezei zippelés egyik percről a másikra is változhat, illetve alkalmanként, ugyan azt a tartalmat összezippelem, és binárisan van egy visszatérő eltérés, gondolom valami timestamp, vagy random kulcs, nem értek hozzá, de ha zippelek egy fájlt, és 10 perc múlva ugyan azt becsomagolom, méret ugyan az, tartalom ugyan az, de a zip binárisan néhol eltér, egy visszatérő minta egyikben xyz másikban abc.
SZERK:
most látom, hogy kicsomagolás után sem egyeznek a fájlok.
Addig már eljutottál, hogy a kitömörített fájlok nem egyeznek meg bitre. De mire vagy kíváncsi?
Ha arra, hogy a képtartalom (~= látvány) megegyezik-e, akkor a fájlokat legfeljebb akkor van értelme bitenként összehasonlítani, ha raw formátumban vannak. (A formátumról nem írtál semmit.) A látvány szempontjából több értelme van a kép egyéb jellemzőit vizsgálni. Például az RGB hisztogramot.
Egyébként ha nem vagy profi fotós, vagy grafikus, akkor legtöbbször a „ránézésre egyforma” elegendő lehet az egyezés megállapítására.
-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.
Valamelyik hozzászólásomban látszik, jpg-ekről van szó.
Egy képet kiragadva, 273 byte különbözik. Ebből megnéztem egyet, abban hat bit eltérés van. Végülis mindegy, mivel a jpg tömörített. Azért még megyek egy kört, kb mi-hol lehet a különbség.
Ez alapján nekem a vízjelezés tűnik a legvalószínűbbnek. Bár kicsit számolgatva, ahhoz is kevés... fura.
Valamelyik képmanipulátor biztosan tud olyat, hogy az egyik képet pixelenként kivonja a másikból. Ekkor fekete háttéren marad valami szöszmösz. Lehet hogy semmit se tudsz meg belőle, de érdekes lehet.
--
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
ImageMagick
http://www.imagemagick.org/Usage/compare/#difference
GIMP-ben lehet csinálni két réteget (layer) a két képnek, aztán a fölsőre a normál rálapolás helyett ki kell választani, hogy különbség (difference). Lesz egy nagy feketeség (ha szemre egyezett a két kép). Ekkor "copy visible" (látható másolása?), majd beillesztés új rétegként és arra a rétegre rá kell ereszteni egy level vagy curve (szintek, görbék) átalakítást, és kellően erőteljesen meg lehet emelni a kontrasztot.
wine -> total commander -> file menü -> összehasonlítás tartalomra
Fából vaskarika. Windows-on meg lehetőleg használjunk mindent Cygwin-nel.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE