Kezdőoldal » Számítástechnika » Programozás » Egy dokumentum (fájl) tartalma...

Egy dokumentum (fájl) tartalmazhatja a saját checksum összegét?

Figyelt kérdés

Arra gondolok, hogy a fájlban úgy van benne a saját ellenőrző összege, hogy az összeg kiszámításakor a teljes fájlt, a benne lévő összeget is figyelembe kell venni.

Létezik ehhez algoritmus?


Pl. fájl: "HelloWorld_11001100" -> checksum: 11001100



2017. márc. 18. 19:56
1 2
 1/20 anonim ***** válasza:
7%
Nem tartalmazhatja.
2017. márc. 18. 20:01
Hasznos számodra ez a válasz?
 2/20 anonim ***** válasza:
50%
Egészen véletlenül nem az volna a célod, hogy a program csak azokat a fájlokat fogadja el, amiket ő maga készített? Mert ha igen, arra mást kellene használni.
2017. márc. 18. 20:05
Hasznos számodra ez a válasz?
 3/20 anonim ***** válasza:

Nem.

Mármint véletlenül biztosan, szándékosan nem fogod tudni megcsinálni.

2017. márc. 18. 21:12
Hasznos számodra ez a válasz?
 4/20 sharkxxx ***** válasza:

Meg lehet valósítani.


De a hagyományos checksum algoritmusokkal (mint például a CRC32) nehéz rendesen megoldani. Azokkal csak úgy lehet, hogy:

- Kiszámolod a dokumentum CRC checksumját.

- Elmented egy másik fájlba.

- Plusz ebbe a fájlba bele írod a dokumentumot is.

Ellenőrzésnél:

- A fájl elején levő CRC értéket kihagyod, és csak a fájl többi részére számolod ki a CRC-t.

- Ha a kiszámolt CRC egyezik a fájlt elején levő CRC-vel, akkor nem volt módosítva a dokumentum.


Ha rendesebben akarod megoldani, akkor valami ilyesmi algoritmussal megoldható:

- Végig mész a dokumentum bájtjain, és 4 bájtonként átalakítod egész számmá. Ezeket a számokat össze adod.

- Kitalálsz egy tetszőleges konstanst. Például: 1234567890

- Az 1234567890-ből kivonod azt az összeget, amit előzőleg kaptál. Így megkapod a checksum-ot.

- Beírod a checksum-ot a dokumentum elejére.

Ellenőrzésnél:

- Végig mész a dokumentum bájtjain, és 4 bájtonként átalakítod egész számmá. Ezeket a számokat össze adod.

- Ha az összeg egyezik a 1234567890-vel, akkor nem volt módosítva a dokumentum.

2017. márc. 18. 21:17
Hasznos számodra ez a válasz?
 5/20 anonim ***** válasza:
Vagy olyat is megejthetsz, hogy egy ZIP-be összecsomagolod a checksum-mal együtt a fájlt.
2017. márc. 18. 21:19
Hasznos számodra ez a válasz?
 6/20 anonim ***** válasza:
7%

Elképesztő mekkora gányolásokat tudnak egyesek kitalálni.

Elképesztő.

2017. márc. 18. 21:33
Hasznos számodra ez a válasz?
 7/20 anonim ***** válasza:
60%

Miért ne tartalmazhatná, természetesen tartalmazhatja a checksumot, persze ez azt feltételezi, hogy saját file formátumot használsz. Kiszámolod a teljes állományra a checksum értéket es hozzáírod a file végéhez.

Ebben semmi ördöngösség nincs.

2017. márc. 19. 09:39
Hasznos számodra ez a válasz?
 8/20 anonim ***** válasza:
44%

"Miért ne tartalmazhatná, természetesen tartalmazhatja a checksumot, persze ez azt feltételezi, hogy saját file formátumot használsz. Kiszámolod a teljes állományra a checksum értéket es hozzáírod a file végéhez.

Ebben semmi ördöngösség nincs."

Kivéve annyi, hogy miután szépen hozzáírtad a fájlhoz, onnantól kezdve a fájlnak teljesen más checksumja van. Innentől kezdve, ha ellenőrizni akarod, akkor ki kell szedned a fájlból és úgy újra számolnod.

Akkora baromság, hogy komolyan mondom egyeseket egy életre el kéne tiltani a programozástól.

Nem véletlenül szokás a checksumot a fájl mellé elhelyezni és nem bele... Mi olyan bonyolult ezen megérteni?

2017. márc. 19. 09:49
Hasznos számodra ez a válasz?
 9/20 anonim ***** válasza:

8: Alapvetően kétféle checksum képzés használatos. Az egyik egy sima összeadás, ahol a checksum az adott bitszélességre csonkolt összeg lesz. A másik, ahol a checksum e csonkolt érték nullára történő kiegészítő különbségi értéke lesz. Ez utóbbi esetben a teljes file adatait összegzed _beleértve_ a file végéhez írt különbségi értéket. Ha nullát kapsz, akkor file ok, ha nem, akkor valami gáz van.

Ilyen egyszerű.


De ha a sima összeadós eljárást követjük: biztos kur va bonyolult a file végén 4 bájtot fixen fenntartani checksum-nak, amit nem adsz hozzá visszaellenőrzéskor az összeghez.

Persze, inkább írd egy külön fájlba, úgy biztos egyszerűbb... zsenikém. Látom, te is nagy kódguru vagy..

2017. márc. 19. 10:49
Hasznos számodra ez a válasz?
 10/20 anonim ***** válasza:
44%

"biztos kur va bonyolult a file végén 4 bájtot fixen fenntartani checksum-nak, amit nem adsz hozzá visszaellenőrzéskor az összeghez.

Persze, inkább írd egy külön fájlba, úgy biztos egyszerűbb... zsenikém. Látom, te is nagy kódguru vagy.."


Tudod, a checksum lényege, hogy egy file, mint összefüggő adathalmaz koherenciáját biztosítsa. Ha te ahhoz hozzáírsz, akkor megváltoztatod a tartalmat.

Lehetne éppen azt is, amit te írsz, csak hát, valamiért nem lett gyakorlat. Talán nem véletlenül.

2017. márc. 19. 11:17
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, 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!