Perus64

Base64  on standardi binääritietojen koodaamiseen käyttämällä vain 64 ASCII-merkkiä . Koodausaakkoset sisältävät latinalaisia ​​merkkejä AZ, az, numeroita 0-9 (yhteensä 62 merkkiä) ja 2 lisämerkkiä toteutusjärjestelmästä riippuen. Jokainen 3 alkuperäistä tavua on koodattu 4 merkillä (lisäys ¹⁄₃).

Tätä järjestelmää käytetään laajasti sähköpostissa edustamaan binääritiedostoja sähköpostin rungossa ( kuljetuskoodaus ).

MIME

MIME Base64 -sähköpostimuodossa tämä on malli, joka muuntaa mielivaltaisen tavusarjan tulostettavien ASCII - merkkien sarjaksi.

Tavalliset 62 merkkiä on +täytetty , /ja = erikoisliitekoodina.

Tämän Base64-muodon täydellinen erittely löytyy RFC 1421 :stä ja RFC 2045:stä . Tätä menetelmää käytetään koodaamaan oktettisekvenssi ( tavuja ).

Datan muuntamiseksi Base64:ksi ensimmäinen tavu sijoitetaan 24-bittisen puskurin merkittävimpiin kahdeksaan bittiin, seuraava keskimmäiseen kahdeksaan ja kolmas vähiten merkitsevään kahdeksaan bittiin. Jos vähemmän kuin kolme tavua koodataan, vastaavat puskuribitit asetetaan nollaan. Sitten joka kuudes puskurin bitti, alkaen merkittävimmistä, käytetään merkkijonon "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" indekseinä ja sen merkit, joihin indeksit osoittavat, sijoitetaan lähtömerkkijonoon. Jos vain yksi tai kaksi tavua on koodattu, tuloksena on vain kaksi tai kolme ensimmäistä merkkijonoa ja tulostemerkkijono täytetään kahdella tai yhdellä merkillä =. Tämä estää ylimääräisten bittien lisäämisen palautettuihin tietoihin. Prosessi toistetaan jäljellä oleville syöttötiedoille.

Esimerkiksi Thomas Hobbesin lainaus Leviathanista :

Ihminen erottuu, ei vain järkensä, vaan myös tällä erityisellä intohimolla muista eläimistä, joka on mielen himo, joka sinnikkällä ilolla jatkuvasta ja väsymättömästä tiedon sukupolvesta ylittää minkä tahansa lihallisen nautinnon lyhyen kiihkeyden. .

muunnetaan ASCII:stä Base64:ksi, näyttää tältä:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0 aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1 c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0 aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

Esimerkissä sana Man on koodattu nimellä TWFu. Muunnosprosessi voidaan esittää seuraavana taulukona:

Lähdeteksti M a n
ASCII-koodit 77 (0x4p) 97 (0x61) 110 (0x6e)
Binäärinäkymä 0 yksi 0 0 yksi yksi 0 yksi 0 yksi yksi 0 0 0 0 yksi 0 yksi yksi 0 yksi yksi yksi 0
Vastaanotettu indeksi Base64:ssä 19 22 5 46
Lopputulos Base64:ssä T W F u

Base64 merkki-arvo -kartoitus

Symboli Merkitys Symboli Merkitys Symboli Merkitys Symboli Merkitys
kymmenen 2 kahdeksan 16 kymmenen 2 kahdeksan 16 kymmenen 2 kahdeksan 16 kymmenen 2 kahdeksan 16
A 0 000000 00 00 K 16 010000 kaksikymmentä kymmenen g 32 100 000 40 kaksikymmentä w 48 110 000 60 kolmekymmentä
B yksi 000001 01 01 R 17 010001 21 yksitoista h 33 100001 41 21 x 49 110001 61 31
C 2 000010 02 02 S kahdeksantoista 010010 22 12 i 34 100010 42 22 y viisikymmentä 110010 62 32
D 3 000011 03 03 T 19 010011 23 13 j 35 100011 43 23 z 51 110011 63 33
E neljä 000100 04 04 U kaksikymmentä 010100 24 neljätoista k 36 100100 44 24 0 52 110100 64 34
F 5 000101 05 05 V 21 010101 25 viisitoista l 37 100101 45 25 yksi 53 110101 65 35
G 6 000110 06 06 W 22 010110 26 16 m 38 100110 46 26 2 54 110110 66 36
H 7 000111 07 07 X 23 010111 27 17 n 39 100111 47 27 3 55 110111 67 37
minä kahdeksan 001000 kymmenen 08 Y 24 011000 kolmekymmentä kahdeksantoista o 40 101 000 viisikymmentä 28 neljä 56 111 000 70 38
J 9 001001 yksitoista 09 Z 25 011001 31 19 s 41 101001 51 29 5 57 111001 71 39
K kymmenen 001010 12 0A a 26 011010 32 1A q 42 101010 52 2A 6 58 111010 72 3A
L yksitoista 001011 13 0B b 27 011011 33 1B r 43 101011 53 2B 7 59 111011 73 3B
M 12 001100 neljätoista 0C c 28 011100 34 1C s 44 101100 54 2C kahdeksan 60 111100 74 3C
N 13 001101 viisitoista 0D d 29 011101 35 1D t 45 101101 55 2D 9 61 111101 75 3D
O neljätoista 001110 16 0E e kolmekymmentä 011110 36 1E u 46 101110 56 2E + 62 111110 76 3E
P viisitoista 001111 17 0F f 31 011111 37 1F v 47 101111 57 2F / 63 111111 77 3F

UTF-7

UTF-7 on Base64:n muokattu versio. Tätä koodausjärjestelmää käytetään UTF-16- tiedostoille MIME:n välimuotona. UTF-7 on tarkoitettu käytettäväksi sähköpostin unicoden kanssa ilman sisällönsiirtokoodausta. Suurin ero tämän Base64-version ja MIME:n välillä on se, että merkkiä =ei käytetä täyttöön, koska merkkiä on pakotettava useita kertoja. Sen sijaan oktetin bitit on täytetty nolilla.

Muokattu Base64 on standardoitu RFC 2152 :n ( A Mail-Safe Transformation Format of Unicode ) mukaisesti.

IRCu

IRC :n ja yhteensopivien ohjelmistojen käyttämässä palvelin-palvelinprotokollassa Base64-versiota käytetään asiakas/palvelin numeeristen ja binaaristen IP-osoitteiden koodaamiseen. Asiakkaan ja palvelimen numeerisilla tiedoilla on kiinteät koot, jotka vastaavat tarkasti Base64-merkkien määrää, joten täyttöä ei tarvita. Binaariset IP-osoitteet on laajennettu nollabittien alussa. Merkistö eroaa hieman MIME:stä []käyttämällä +/.

Sovellus verkkosovelluksissa

Base64:n ansiosta binaarisisältöä voidaan sisällyttää html-dokumentteihin, jolloin saadaan yksi dokumentti ilman erillisiä kuvia ja muita lisätiedostoja. Siten html-dokumentista, jossa on grafiikkaa, ääntä, videota, ohjelmia, tyylejä ja muita siihen sisältyviä lisäyksiä, tulee erinomainen vaihtoehto monimutkaisten asiakirjojen, kuten doc, docx, pdf, muille muodoille.

Jotkut sovellukset koodaavat binaaridataa, jotta se voidaan helposti sisällyttää URL-osoitteisiin, piilotettuihin lomakekenttiin.

URL-enkooderin käyttäminen Base64-standardin yli ei aina ole kätevää, koska se muuntaa merkit /ja +erityiset heksadesimaalisekvenssit. Vaikka tämä muunnos on palautuva, se pidentää merkkijonoa ja vaikeuttaa sen myöhemmin jäsentämistä. Lisäksi %URL-enkooderin luoma merkki saattaa joutua syöttämään koodin uudelleen, kun tuloksena oleva merkkijono välitetään muiden järjestelmien läpi (esim. SQL :ssä se on mallielementti).

Tästä syystä URL-osoitteelle on muokattu Base64 , jossa merkkitäytöstä =ja symboleista ei käytetä ja ne korvataan +ja vastaavasti . Siksi URL-koodaajien/dekooderien käyttö ei ole enää tarpeen, eikä sillä ole vaikutusta koodatun arvon pituuteen, jolloin sama koodattu muoto jää ennalleen käytettäväksi relaatiotietokantoissa, verkkolomakkeissa ja objektitunnisteissa yleensä. URL- osoitteiden Base64-koodaus tunnistaa muunnelman, kun merkit ja korvataan merkillä ja ( RFC 3548 , osa 4). /*-+/-_

Toista muunnelmaa kutsutaan muunnetuksi Base64:ksi säännöllisille lausekkeille ja käyttötarkoituksille !ja -sen sijaan *ja -, korvaamaan vakio Base64 +/, koska molemmat +ja *voidaan varata säännöllisille lausekkeille (huomaa, että []yllä käytetty IRCu-variantti ei välttämättä toimi tässä yhteydessä).

On myös muita vaihtoehtoja, jotka käyttävät _ja -tai .ja _jos Base64-merkkijonoa käytetään yhdessä ohjelmien tunnisteiden kanssa tai .ja -käytettäväksi XML-nimitunnisteissa ( Nmtoken ) tai rajoitetummissa XML- tunnisteissa ( Name ). Joissakin tapauksissa URL-osoite käyttää Base58 :aa , joka ei käytä merkkejä ja . _:+/

Base58

Base58:a käytetään URL- osoitteiden koodaamiseen joissakin järjestelmissä, mikä eroaa Base64:stä siinä, että lopullisessa tekstissä ei ole merkkejä, jotka henkilö voi havaita epäselvästi. 0 (nolla), O (latinalainen iso kirjain o ), I (latinalainen iso kirjain i ), l (pieni latinalainen L ) jätetään pois . Myös + (plus)- ja / (vinoviiva) -merkit eivät sisälly, jotka URL -osoitetta koodattaessa voivat johtaa osoitteen virheelliseen tulkintaan.

Radix-64

Radix-64 on muunnelma binääritietojen Base64-koodauksesta tekstimuotoon, jota käytetään PGP :ssä . Se eroaa Base64:stä siinä, että 24-bittinen tarkistussumma lisätään loppuun.

Unix - pohjaiset käyttöjärjestelmät tallentavat salasanojen hajautusarvot / etc/passwd-tiedostoon käyttämällä B64 - koodausta . Se on samanlainen kuin Radix-64, mutta kohdistuspäätettä ei käytetä ja aakkosissa ei-aakkosmerkit sijoitetaan alkuun: . =./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Muut käyttötarkoitukset

Base64:lle on monia käyttötarkoituksia. Esimerkiksi Thunderbird ja Mozilla Suite käyttivät Base64:ää salasanojen piilottamiseen POP3 :ssa . Base64:ää voidaan käyttää salaisuuksien piilottamiseen ilman salausavainten hallintaa , mutta tämä lähestymistapa on täysin epävarma eikä sitä suositella.

Roskapostinlukijat , jotka eivät pura viestejä Base64:ään, jäävät usein huomaamatta, koska tällaiset viestit näyttävät riittävän satunnaisilta, jotta ne voidaan luulla roskapostiksi . Roskapostittajat käyttävät tätä roskapostin perustyökalujen ohittamiseen.

Tätä standardia käytetään JPEG- ja PNG-kuvien koodaamiseen, niiden lisäämiseen FB2 -e-kirjoihin [1] .

Jotkut sovellukset käyttävät Base64-koodausta pienten kuvien lähettämiseen pitkien tekstiviestien [2] kautta .

Muistiinpanot

  1. Binäärielementti on FictionBook . fictionbook.org. Haettu 23. syyskuuta 2019. Arkistoitu alkuperäisestä 22. syyskuuta 2019.
  2. Kuvatekstiviesti | F-Droid - ilmainen ja avoimen lähdekoodin Android-sovellusvarasto . f-droid.org . Haettu 23. huhtikuuta 2021. Arkistoitu alkuperäisestä 23. huhtikuuta 2021.

Linkit

Online-koodaus ja dekoodaus