Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Ofte sendes binærdata av ulikt format, og man vil unngå risikoen for at ulike protokoller tolker dataene ulikt. Dersom man streamer bits og bytes over nettverket i råformat, vil man risikere at noen protokoller tror det overføres spesialtegn i bitmønsteret. Dette betyr at når man sender meldinger i "klartekst" rene bits uten å kode dem, vil man ikke ha noen garanti for at ulike protokoller tolker tegnene likt. Ved hjelp av Base64 omformer man binærdata til tekst slik at det blir enklere å sende både epost og html-skjemaer. 

...

Selv om MIME i hovedsak er utviklet for SMTP, er standardene definert i MIME også viktig for kommunikasjonsprotokoller utenom epost, som HTTP.  Servere setter inn MIME-headere i begynnelsen av enhver web-overføring. Klienter bruker denne mediatype-headeren (MIME type) for å velge riktig visningsprogram for den typen data som er indikert i headeren. Noen av disse visningsprogrammene er innebygd i nettleseren eller webklienten.

 

3. Virkemåte

Base64 fungerer i praksis på 2 måter: Koding og dekoding.

...

Nå har vi 8 ulike 6-bits mønster, og vi kan da bruke oversettelsestabellen fra forrige seksjon for å få den endelige Base64-strengen:

 

 

Bits

010001

000110

000101

110100

011000

010000

000000

000000

Tallverdi

17

6

5

52

24

16

0

0

Tegn

R

G

F

0

Y

Q

=

=

 

...

Når man skal dekode fra Base64, følger man egentlig bare prosessen for å kode, bare baklengs. For enkelhets skyld, kan vi dekode RGF0YQ==, som ble brukt over. Det første man gjør, er å se på hvert enkelt tegn i strengen, for å så finne den korresponderende tallverdien i oppslagstabellen:

 

 

Tegn

R

G

F

0

Y

Q

=

=

Tallverdi

17

6

5

52

24

16

0

0

Bits

010001

000110

000101

110100

011000

010000

000000

000000

 

...

De 2 padding-tegnene (==) i slutten, sier at de 4 siste tegn kun vil bli gjort om til ett tegn, og vi kan derfor ignorere de 2 siste gruppene. Hadde det vært ett padding-tegn, ville dette betydd at de 4 siste tegnene ville blitt gjort om til 2 tegn. Resten av gruppene kan vi bruke til å oversette til de dekodede tegnene, igjen via en ASCII-/UTF-8-tabell:

 

 

Bitmønster

01000100

01100001

01110100

01100001

Tegn

D

a

t

a

 

...