A Base64 szabvány a bináris adatok csak 64 ASCII karakterből álló kódolására . A kódoló ábécé latin AZ, az karaktereket , 0-9 számokat (összesen 62 karakter) és további 2 karaktert tartalmaz a megvalósítási rendszertől függően. Minden 3 eredeti bájt 4 karakterrel van kódolva (¹⁄₃-val növelve).
Ezt a rendszert széles körben használják az e- mailekben a bináris fájlok megjelenítésére az e-mail törzsében ( szállítási kódolás ).
A MIME Base64 e- mail formátumban ez egy olyan séma, amely tetszőleges bájtsorozatot konvertál nyomtatható ASCII - karakterek sorozatává.
A szabványos 62 karakter +, /és = speciális utótag kódként van kitöltve.
A Base64 ezen formájának teljes specifikációja az RFC 1421 és RFC 2045 szabványokban található . Ezt a sémát oktett ( byte ) sorozat kódolására használják .
Az adatok Base64-be való konvertálásához az első bájt a 24 bites puffer legjelentősebb nyolc bitjébe kerül, a következő a középső nyolc, a harmadik pedig a legkisebb jelentőségű nyolc bitbe. Ha háromnál kevesebb bájt van kódolva, akkor a megfelelő pufferbitek nullára kerülnek. Ezután a puffer minden hatodik bitje, a legjelentősebbekkel kezdve, az "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" karakterlánc indexeként kerül felhasználásra, és az indexek által mutatott karakterek a kimeneti karakterláncba kerülnek. Ha csak egy vagy két bájt van kódolva, az eredmény csak a karakterlánc első két vagy három karaktere lesz, a kimeneti karakterlánc pedig két vagy egy karakterrel van kitöltve =. Ez megakadályozza, hogy extra biteket adjanak a helyreállított adatokhoz. A folyamat megismétlődik a fennmaradó bemeneti adatokon.
Például Thomas Hobbes idézete a Leviathanból :
Az embert nemcsak az esze, hanem ez az egyedülálló szenvedély különbözteti meg a többi állatoktól, ami az elme vágya, amely a tudás folyamatos és fáradhatatlan nemzedékében való gyönyörködtetésével túlszárnyal minden testi élvezet rövid hevességét. .ASCII-ről Base64-re konvertálva így néz ki:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0 aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1 c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0 aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=A példában a Man szó TWFu-ként van kódolva. Az átalakítási folyamat a következő táblázatban ábrázolható:
Forrás szöveg | M | a | n | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ASCII kódok | 77 (0x4d) | 97 (0x61) | 110 (0x6e) | |||||||||||||||||||||
Bináris nézet | 0 | egy | 0 | 0 | egy | egy | 0 | egy | 0 | egy | egy | 0 | 0 | 0 | 0 | egy | 0 | egy | egy | 0 | egy | egy | egy | 0 |
Index érkezett a Base64-ben | 19 | 22 | 5 | 46 | ||||||||||||||||||||
A végeredmény a Base64-ben | T | W | F | u |
Szimbólum | Jelentése | Szimbólum | Jelentése | Szimbólum | Jelentése | Szimbólum | Jelentése | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tíz | 2 | nyolc | 16 | tíz | 2 | nyolc | 16 | tíz | 2 | nyolc | 16 | tíz | 2 | nyolc | 16 | |||||||
A | 0 | 000000 | 00 | 00 | K | 16 | 010000 | húsz | tíz | g | 32 | 100 000 | 40 | húsz | w | 48 | 110 000 | 60 | harminc | |||
B | egy | 000001 | 01 | 01 | R | 17 | 010001 | 21 | tizenegy | h | 33 | 100001 | 41 | 21 | x | 49 | 110001 | 61 | 31 | |||
C | 2 | 000010 | 02 | 02 | S | tizennyolc | 010010 | 22 | 12 | én | 34 | 100010 | 42 | 22 | y | ötven | 110010 | 62 | 32 | |||
D | 3 | 000011 | 03 | 03 | T | 19 | 010011 | 23 | 13 | j | 35 | 100011 | 43 | 23 | z | 51 | 110011 | 63 | 33 | |||
E | négy | 000100 | 04 | 04 | U | húsz | 010100 | 24 | tizennégy | k | 36 | 100100 | 44 | 24 | 0 | 52 | 110100 | 64 | 34 | |||
F | 5 | 000101 | 05 | 05 | V | 21 | 010101 | 25 | tizenöt | l | 37 | 100101 | 45 | 25 | egy | 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 | |||
én | nyolc | 001000 | tíz | 08 | Y | 24 | 011000 | harminc | tizennyolc | o | 40 | 101000 | ötven | 28 | négy | 56 | 111000 | 70 | 38 | |||
J | 9 | 001001 | tizenegy | 09 | Z | 25 | 011001 | 31 | 19 | p | 41 | 101001 | 51 | 29 | 5 | 57 | 111001 | 71 | 39 | |||
K | tíz | 001010 | 12 | 0A | a | 26 | 011010 | 32 | 1A | q | 42 | 101010 | 52 | 2A | 6 | 58 | 111010 | 72 | 3A | |||
L | tizenegy | 001011 | 13 | 0B | b | 27 | 011011 | 33 | 1B | r | 43 | 101011 | 53 | 2B | 7 | 59 | 111011 | 73 | 3B | |||
M | 12 | 001100 | tizennégy | 0C | c | 28 | 011100 | 34 | 1C | s | 44 | 101100 | 54 | 2C | nyolc | 60 | 111100 | 74 | 3C | |||
N | 13 | 001101 | tizenöt | 0D | d | 29 | 011101 | 35 | 1D | t | 45 | 101101 | 55 | 2D | 9 | 61 | 111101 | 75 | 3D | |||
O | tizennégy | 001110 | 16 | 0E | e | harminc | 011110 | 36 | 1E | u | 46 | 101110 | 56 | 2E | + | 62 | 111110 | 76 | 3E | |||
P | tizenöt | 001111 | 17 | 0F | f | 31 | 011111 | 37 | 1F | v | 47 | 101111 | 57 | 2F | / | 63 | 111111 | 77 | 3F |
Az UTF-7 a Base64 módosított változata. Ezt a kódolási sémát UTF-16 fájlokhoz használják köztes formátumként a MIME-ben. Az UTF-7 tartalomátviteli kódolás nélküli e-mailben való unicode -dal való használatra készült . A fő különbség a Base64 változat és a MIME között az, hogy a karaktert =nem használjuk kitöltésre, mivel a karaktert többször meg kell szökni. Ehelyett az oktett bitjei nullákkal vannak kitöltve.
A módosított Base64 az RFC 2152 ( A Mail-Safe Transformation Format of Unicode ) szerint szabványosított.
Az IRC és a kompatibilis szoftverek által használt szerver-kiszolgáló protokollban a Base64 verziót használják a kliens/szerver numerikus és bináris IP-címek kódolására. A kliens és szerver numerikus adatok fix méretűek, amelyek pontosan megegyeznek a Base64 karakterek számával, így nincs szükség kitöltésre. A bináris IP-címek a bevezető nulla bitekkel bővülnek. A karakterkészlet kissé eltér a MIME karakterkészletétől, mivel a []helyett a karakterkészletet használja +/.
A Base64-nek köszönhetően a bináris tartalom beépíthető a html dokumentumokba, így egyetlen dokumentum jön létre külön képek és egyéb további fájlok nélkül. Így egy grafikát, hangot, videót, programokat, stílusokat és egyéb kiegészítéseket tartalmazó html dokumentum kiváló alternatívává válik az összetett dokumentumok egyéb formátumaihoz, mint például a doc, docx, pdf.
Egyes alkalmazások bináris adatokat kódolnak az URL-ekbe, rejtett űrlapmezőkbe való egyszerű felvétel érdekében.
A Base64 szabványon felüli URL-kódoló használata nem mindig kényelmes, mivel a karaktereket /és +speciális hexadecimális szekvenciákat alakítja át. Bár ez az átalakítás visszafordítható, meghosszabbítja a karakterláncot, és kissé megnehezíti a későbbi elemzést. Ezenkívül előfordulhat, %hogy az URL-kódoló által generált karaktert ismét fel kell szabadítani, amikor az eredményül kapott karakterláncot más rendszereken keresztül továbbítják (például az SQL -ben ez egy sablonelem).
Emiatt van egy módosított Base64 az URL számára , ahol a karakterek kitöltése =és a szimbólumok nem használatosak , és helyettük a +és a . Ezért az URL-kódolók/dekódolók használata már nem szükséges, és nincs hatással a kódolt érték hosszára, így ugyanaz a kódolt forma érintetlenül marad a relációs adatbázisokban, webes űrlapokban és általában az objektumazonosítókban. Az URL -ek Base64-kódolása felismeri a változatot, amikor a és karakterek helyére a és karakterek cserélődnek ( RFC 3548 , 4. szakasz). /*-+/-_
A másik változat neve módosított Base64 a reguláris kifejezésekhez és felhasználásokhoz , a !és -helyett *pedig -a szabványos Base64 helyettesítésére +/, mivel a +és mindkettő *lefoglalható a reguláris kifejezésekhez (megjegyzendő, hogy []az IRCu változatban fentebb használt ebben az összefüggésben előfordulhat, hogy nem működik).
Vannak más opciók is, amelyek az _és -vagy .és _a Base64 karakterláncot használják a programok azonosítóival együtt, vagy .és -XML névjogkivonatokban ( Nmtoken ), vagy _korlátozottabb :XML azonosítókban ( Name ). Bizonyos esetekben az URL a Base58 -at használja , amely nem használja a +és a karaktereket /.
A Base58-at egyes rendszerekben az URL -ek kódolására használják , ami abban különbözik a Base64-től, hogy a végső szövegben nincsenek olyan karakterek, amelyeket egy személy félreérthetően észlelhet. 0 (nulla), O (latin nagybetűs o ), I (latin nagybetűs i ), l (kis latin L ) nem szerepel . A + (plusz) és / (perjel) karakterek szintén kizártak , amelyek egy URL kódolásakor a cím helytelen értelmezéséhez vezethetnek.
A Radix-64 a PGP -ben használt bináris adatok szöveges formátumú Base64 kódolásának egy változata . Abban különbözik a Base64-től, hogy egy 24 bites ellenőrző összeg kerül a végére.
A Unix alapú operációs rendszerek a B64 kódolást használó /etc/passwd fájlban tárolják a crypttel számított jelszókivonatokat . Hasonló a Radix-64-hez, de az igazítási utótagot nem használják, és az ábécében a nem alfabetikus karakterek az elejére kerülnek: . =./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
A Base64-nek számos felhasználási módja van. Például a Thunderbird és a Mozilla Suite a Base64-et használta a jelszavak elrejtésére a POP3 -ban . A Base64 használható módszerként a titkok elrejtésére a kriptográfiai kulcskezelés többletköltsége nélkül , azonban ez a megközelítés teljesen nem biztonságos, és nem ajánlott.
Azok a levélszemét - szkennerek , amelyek nem dekódolják az üzeneteket Base64-re, gyakran figyelmen kívül hagyják őket, mivel az ilyen üzenetek elég véletlenszerűnek tűnnek ahhoz, hogy összetéveszthetők legyenek spammel. Ezt használják a spamküldők az alapvető levélszemét-szűrő eszközök megkerülésére.
Ez a szabvány a JPEG és PNG képek kódolására, FB2 e-könyvekbe való beillesztésére szolgál [1] .
Vannak olyan alkalmazások, amelyek Base64 kódolást használnak kis képek küldésére hosszú SMS -ben [2] .
sorozatosítása | Digitális adatformátumok|
---|---|
Szöveg | |
Internet és távközlés |
|
Média | |
Egyéb |