Egy hárombetűs ellenpélda
Az ASCII „Man” három bájtja egyben kódolva TWFu. Ha „M” és „an” részekre bontjuk, külön-külön TQ== és YW4= lesz az eredmény. Egyszerű összefűzésük TQ==YW4=, ami nem a teljes adat szabályos, egyben kódolt Base64-alakja. A középre került kitöltőjelek a rész lezárását jelzik.
A három bájtos határ szerepe
Ha a nem utolsó rész bájthossza hárommal osztható, nincs szüksége kitöltésre. Például „ManMan” két „Man” részének kódja TWFu és TWFu, összefűzve TWFuTWFu. Ez megegyezik az egyben kódolt eredménnyel. A feltétel bájthosszra vonatkozik, nem feltétlenül a látható karakterek számára.
Két következetes megoldás
Önálló kódolt blokkokat saját határokkal tárolva mindegyiket külön dekódolhatod, majd a visszakapott bájtokat összefűzheted. Folyamatos kódolásnál a feldolgozó megőrzi a hiányos csoport bájtjait a következő részhez, és csak a végén zár kitöltéssel. A két formátumot a fogadó féllel egyeztetni kell.
Ellenőrzés kis példákkal
Próbálj 1, 2, 3 és 4 bájtos darabhatárokat, majd dekódolás után hasonlítsd össze a teljes bájtsorozatot az eredetivel. A hibás alak elfogadása dekóderenként eltérhet, ezért ne támaszkodj egy megengedő eszköz véletlen sikerére. Az RFC 4648 írja le a csoportosítást és kitöltést; az adatdarabolás protokollja ezen felül saját szerződést igényel.
Források
Tudáspróba
Válaszolj a három kérdésre, majd ellenőrizd a megoldókulcsot. Minden helyes válasz 1 pont.
1. Mi a Man egyben kódolt Base64-alakja?
- A) YW4=
- B) TWFu
- C) TQ==YW4=
2. Melyik nem utolsó darabhossz ad kitöltés nélküli blokkot?
- A) 2 bájt
- B) 1 bájt
- C) 3 bájt
3. Hogyan fűzhetők biztosan össze önálló kódolt blokkok?
- A) Külön dekódolás után a bájtok összefűzésével
- B) A külön blokkok közvetlen összefűzésével, darabhatártól függetlenül
- C) Az egyenlőségjelek törlésével és a maradék kódok összefűzésével
Megoldókulcs és visszajelzés
1. B) TWFu A három ASCII-bájt egyetlen négykarakteres csoportot ad.
2. C) 3 bájt A teljes három bájtos csoporthoz nem kell egyenlőségjeles kitöltés.
3. A) Külön dekódolás után a bájtok összefűzésével A blokkok saját lezárását a külön dekódolás helyesen kezeli.
Mit jelent az eredmény?
- 3 pont: mindhárom ellenőrzött összefüggést helyesen alkalmaztad. Változtass meg egy bemeneti adatot a példában, és számold újra az eredményt.
- 1–2 pont: a hibás válaszokhoz tartozó magyarázat alapján vezesd végig újra az érintett számítási lépést.
- 0 pont: olvasd el újra a cikk levezetését, majd próbálkozz a kérdésekkel a megoldókulcs nélkül.
Hiányzó válasszal a próba még nincs lezárva. Ez a rövid önellenőrzés kizárólag a cikkben bemutatott összefüggésekre vonatkozik.