Base64 — позиційна система числення з основою 64. Система широко застосовується в електронній пошті для передачі бінарних файлів у тексті листа (). Всі широко відомі варіанти, відомі під назвою Base64, використовують символи A…Z, a…z і 0…9, що становить 62 знаки, для інших двох знаків в різних системах використовуються різні символи. Основа 64 (26) — це найбільший ступінь двійки, який може бути представлено лише друкованими символами ASCII.
Таблиця кодів Base64
Таблиця перекодування в формат Base64.
Код | Символ | Код | Символ | Код | Символ | Код | Символ | |||
---|---|---|---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w | |||
1 | B | 17 | R | 33 | h | 49 | x | |||
2 | C | 18 | S | 34 | i | 50 | y | |||
3 | D | 19 | T | 35 | j | 51 | z | |||
4 | E | 20 | U | 36 | k | 52 | 0 | |||
5 | F | 21 | V | 37 | l | 53 | 1 | |||
6 | G | 22 | W | 38 | m | 54 | 2 | |||
7 | H | 23 | X | 39 | n | 55 | 3 | |||
8 | I | 24 | Y | 40 | o | 56 | 4 | |||
9 | J | 25 | Z | 41 | p | 57 | 5 | |||
10 | K | 26 | a | 42 | q | 58 | 6 | |||
11 | L | 27 | b | 43 | r | 59 | 7 | |||
12 | M | 28 | c | 44 | s | 60 | 8 | |||
13 | N | 29 | d | 45 | t | 61 | 9 | |||
14 | O | 30 | e | 46 | u | 62 | + | |||
15 | P | 31 | f | 47 | v | 63 | / |
MIME
У форматі електронної пошти MIME base64 — спосіб перетворення бінарної послідовності байтів на послідовність друкованих символів ASCII. Використовується для передачі електронною поштою будь-яких даних, що можуть мати спеціальні або не друковані символи. В форматі використовуються лише символи латинського алфавіту у верхньому та нижньому регістрі — символи (A-Z, a-z), цифри (0-9), символи +
та /
. Символ =
застосовують для відокремлення вкладених файлів від звичайного тексту листа.
Повна специфікація цієї форми base64 міститься в RFC 1421 та RFC 2045. Ця схема застосовується для кодування послідовності октетів (байт). Це відповідає визначенню файлів майже у всіх системах. Закодовані за допомогою base64 дані мають довжину, більшу за оригінальну (у співвідношенні 4:3), виглядають як випадкові символи.
Щоб перекодувати файл у base64, перший байт файлу вміщується в найстарші вісім біт 24-бітного буфера, другий байт — у середні вісім біт, і третій — у молодші вісім біт.
Якщо кодується менш, ніж три байти, то відповідні біти буфера встановлюються в нуль. Далі кожні шість біт буфера, починаючи з найстарших, використовуються як індекс у послідовності ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
. Символ, на який вказує індекс, вміщується у вихідний код. Якщо кодуються тільки один або два байти, використовуються тільки перші два або три символи рядка і результат доповнюється двома або одним символом =
. Це запобігає додаванню додаткових бітів для відновлення початкових даних. Процес повторюється над рештою вхідних даних.
Наприклад, історичний слоган Вікіпедії:
- Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.
має такий вигляд у кодуванні base64:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0 aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1 c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0 aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
UTF-7
являє собою Змінений Base64. Ця схема кодування даних застосовується для того, щоб кодувати UTF-16 як проміжний формат в UTF-7 в друкованих ASCII символах. Цей варіант base64 використовується в MIME. UTF-7 призначений для передачі символів unicode в електронних листах. Головна відмінність цього варіанту base64 від MIME в тому, що символ "=" не використовується для доповнення, тому що потрібно багаторазове екранування цього символу. Замість цього біти октету доповнюються нулями. Змінений Base64 стандартизований по RFC 2152, A Mail-Safe Transformation Format of Unicode.
IRCu
У протоколі сервер-сервер, що використовується в і сумісному програмному забезпеченні, версія base64 використовується для кодування клієнт/серверних числових і двійкових IP-адрес. Клієнтські й серверні числові дані мають фіксовані розміри, які точно збігаються з кількістю знаків base64, тим самим, немає необхідності в додатку. Двійкові IP-адреси для відповідності розширюються провідними нульовими бітами. Набір символів незначно відрізняється від MIME використанням [] замість +/.
Застосування у вебтехнологіях
Кодування Base64 може бути корисним, якщо в оточенні HTTP використовується інформація, довжина якої нам відома. Hibernate, бібліотека, що реалізує базу даних, або сховище, для Java об'єктів, використовує Base64 для того, щоб закодувати відносно великий ідентифікатор (як правило, 128-бітний UUID) в рядок, щоб використовувати його як параметр в HTTP формах або у запитах HTTP GET URL. Також, багатьом програмам необхідно кодувати двійкові дані, для зручності включення в URL, приховані поля форм, і тут Base64 зручний не лише для компактного подання інформації, але й як ускладнення для стороннього спостерігача, який намагається з'ясувати значення переданих даних.
Використовувати URL-кодувальник над стандартом Base64 буде незручно, тому що він перетворює символи '/' і '+' на спеціальні шістнадцяткові послідовності. Якщо пізніше цей рядок використовується разом з базою даних або через гетерогенні системи, вони припиняють роботу на символі '%', згенерованому URL-кодувальником (тому що символ '%' також використовується в ANSI SQL як шаблон).
Як наслідок цього існує Base58 — змінений Base64 для URL, де не використовується заповнення символом '=' і символи '+' і '/' відповідно замінюються на '*' та '-', так, щоб використання кодерів/декодерів URL перестає бути необхідним і не має ніякого впливу на довжину закодованого значення, залишаючи ту ж саму закодовану форму неушкодженою для використання в реляційних базах даних, вебформах, та ідентифікаторах об'єкта взагалі. Стандартом Base64-кодування URL адрес, визнається варіант, коли символи '+' і '/' замінюються, відповідно, на '-' і '_' (RFC3548, розділ 4).
Інший варіант називається змінений Base64 для регулярних виразів використовує '!-' замість '*-' для того, щоб замінити стандартний Base64 '+/', тому що обидва '+' і '*' можуть бути зарезервовані для регулярних виразів (варто зазначити, що '[]' в IRCu варіанті може не працювати в цьому контексті).
Є інші варіанти, які використовують '_-' або'._', якщо рядок Base64 повиннен бути використаний разом з ідентифікаторами для програм, або '.-' для використання в токенах імен XML (Nmtoken), або '_:' в обмеженіших ідентифікаторах XML (Name).
Radix-64
Radix-64 — різновид Base64, призначений для кодування двійкових даних в текстовий формат, що використовується в PGP. Від Base64 відрізняється тим, що в кінець додається контрольна сума довжиною 24 біта.
Інші застосування
Існує безліч варіантів застосування Base64. Наприклад, Thunderbird та Mozilla використовували Base64 для приховування паролів в POP3. Base64 часто використовується як раціональний метод приховати секрет без витрат на криптографічне управління ключами. Base64 часто використовується для вставки двійкових даних у файли XML, використовуючи синтаксис на зразок
<Data encoding="base64"> … </Data>
Прикладом такого використання Base64 кодування може слугувати Firefox, що зберігає значки сайтів в bookmarks.html.
Opera використовує Base64 для збереження вебсторінок в форматі *.mht.
Сканери спаму, які не декодують повідомлення в Base64, часто пропускають повідомлення в Base64, оскільки вони здаються досить випадковими, або не містять ключові слова в тексті Base64, щоб бути прийнятими за спам. Це використовують спамери для обходу основних антиспамових інструментів.
Base64 використовується для приєднання малюнків та інших бінарних файлів у форматі електронних книг FictionBook. Base64 використовується для кодування бінарних файлів, таких як зображення в скриптах, щоб уникнути залежності від зовнішніх файлів. В Data URI можна використовувати Base64 представлення файла. Так, наприклад, фонові зображення можуть бути вказані у файлі каскадних таблиць стилів, як дані: URI, замість того, щоб тримати їх в окремих файлах зображень.
Див. також
Посилання
- Base64, алгоритм реалізовано на C [ 24 лютого 2011 у Wayback Machine.]
- Base64, алгоритм реалізовано на Java [ 6 липня 2008 у Wayback Machine.]
Це незавершена стаття про алгоритми. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття потребує додаткових для поліпшення її . (липень 2017) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Base64 pozicijna sistema chislennya z osnovoyu 64 Sistema shiroko zastosovuyetsya v elektronnij poshti dlya peredachi binarnih fajliv u teksti lista Vsi shiroko vidomi varianti vidomi pid nazvoyu Base64 vikoristovuyut simvoli A Z a z i 0 9 sho stanovit 62 znaki dlya inshih dvoh znakiv v riznih sistemah vikoristovuyutsya rizni simvoli Osnova 64 26 ce najbilshij stupin dvijki yakij mozhe buti predstavleno lishe drukovanimi simvolami ASCII Tablicya kodiv Base64Tablicya perekoduvannya v format Base64 Kod Simvol Kod Simvol Kod Simvol Kod Simvol0 A 16 Q 32 g 48 w1 B 17 R 33 h 49 x2 C 18 S 34 i 50 y3 D 19 T 35 j 51 z4 E 20 U 36 k 52 05 F 21 V 37 l 53 16 G 22 W 38 m 54 27 H 23 X 39 n 55 38 I 24 Y 40 o 56 49 J 25 Z 41 p 57 510 K 26 a 42 q 58 611 L 27 b 43 r 59 712 M 28 c 44 s 60 813 N 29 d 45 t 61 914 O 30 e 46 u 62 15 P 31 f 47 v 63 MIMEDokladnishe MIME U formati elektronnoyi poshti MIME base64 sposib peretvorennya binarnoyi poslidovnosti bajtiv na poslidovnist drukovanih simvoliv ASCII Vikoristovuyetsya dlya peredachi elektronnoyu poshtoyu bud yakih danih sho mozhut mati specialni abo ne drukovani simvoli V formati vikoristovuyutsya lishe simvoli latinskogo alfavitu u verhnomu ta nizhnomu registri simvoli A Z a z cifri 0 9 simvoli ta Simvol zastosovuyut dlya vidokremlennya vkladenih fajliv vid zvichajnogo tekstu lista Povna specifikaciya ciyeyi formi base64 mistitsya v RFC 1421 ta RFC 2045 Cya shema zastosovuyetsya dlya koduvannya poslidovnosti oktetiv bajt Ce vidpovidaye viznachennyu fajliv majzhe u vsih sistemah Zakodovani za dopomogoyu base64 dani mayut dovzhinu bilshu za originalnu u spivvidnoshenni 4 3 viglyadayut yak vipadkovi simvoli Shob perekoduvati fajl u base64 pershij bajt fajlu vmishuyetsya v najstarshi visim bit 24 bitnogo bufera drugij bajt u seredni visim bit i tretij u molodshi visim bit Yaksho koduyetsya mensh nizh tri bajti to vidpovidni biti bufera vstanovlyuyutsya v nul Dali kozhni shist bit bufera pochinayuchi z najstarshih vikoristovuyutsya yak indeks u poslidovnosti ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 Simvol na yakij vkazuye indeks vmishuyetsya u vihidnij kod Yaksho koduyutsya tilki odin abo dva bajti vikoristovuyutsya tilki pershi dva abo tri simvoli ryadka i rezultat dopovnyuyetsya dvoma abo odnim simvolom Ce zapobigaye dodavannyu dodatkovih bitiv dlya vidnovlennya pochatkovih danih Proces povtoryuyetsya nad reshtoyu vhidnih danih Napriklad istorichnij slogan Vikipediyi Man is distinguished not only by his reason but by this singular passion from other animals which is a lust of the mind that by a perseverance of delight in the continued and indefatigable generation of knowledge exceeds the short vehemence of any carnal pleasure maye takij viglyad u koduvanni base64 TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0 aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1 c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0 aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4 UTF 7yavlyaye soboyu Zminenij Base64 Cya shema koduvannya danih zastosovuyetsya dlya togo shob koduvati UTF 16 yak promizhnij format v UTF 7 v drukovanih ASCII simvolah Cej variant base64 vikoristovuyetsya v MIME UTF 7 priznachenij dlya peredachi simvoliv unicode v elektronnih listah Golovna vidminnist cogo variantu base64 vid MIME v tomu sho simvol ne vikoristovuyetsya dlya dopovnennya tomu sho potribno bagatorazove ekranuvannya cogo simvolu Zamist cogo biti oktetu dopovnyuyutsya nulyami Zminenij Base64 standartizovanij po RFC 2152 A Mail Safe Transformation Format of Unicode IRCuU protokoli server server sho vikoristovuyetsya v i sumisnomu programnomu zabezpechenni versiya base64 vikoristovuyetsya dlya koduvannya kliyent servernih chislovih i dvijkovih IP adres Kliyentski j serverni chislovi dani mayut fiksovani rozmiri yaki tochno zbigayutsya z kilkistyu znakiv base64 tim samim nemaye neobhidnosti v dodatku Dvijkovi IP adresi dlya vidpovidnosti rozshiryuyutsya providnimi nulovimi bitami Nabir simvoliv neznachno vidriznyayetsya vid MIME vikoristannyam zamist Zastosuvannya u vebtehnologiyahKoduvannya Base64 mozhe buti korisnim yaksho v otochenni HTTP vikoristovuyetsya informaciya dovzhina yakoyi nam vidoma Hibernate biblioteka sho realizuye bazu danih abo shovishe dlya Java ob yektiv vikoristovuye Base64 dlya togo shob zakoduvati vidnosno velikij identifikator yak pravilo 128 bitnij UUID v ryadok shob vikoristovuvati jogo yak parametr v HTTP formah abo u zapitah HTTP GET URL Takozh bagatom programam neobhidno koduvati dvijkovi dani dlya zruchnosti vklyuchennya v URL prihovani polya form i tut Base64 zruchnij ne lishe dlya kompaktnogo podannya informaciyi ale j yak uskladnennya dlya storonnogo sposterigacha yakij namagayetsya z yasuvati znachennya peredanih danih Vikoristovuvati URL koduvalnik nad standartom Base64 bude nezruchno tomu sho vin peretvoryuye simvoli i na specialni shistnadcyatkovi poslidovnosti Yaksho piznishe cej ryadok vikoristovuyetsya razom z bazoyu danih abo cherez geterogenni sistemi voni pripinyayut robotu na simvoli zgenerovanomu URL koduvalnikom tomu sho simvol takozh vikoristovuyetsya v ANSI SQL yak shablon Yak naslidok cogo isnuye Base58 zminenij Base64 dlya URL de ne vikoristovuyetsya zapovnennya simvolom i simvoli i vidpovidno zaminyuyutsya na ta tak shob vikoristannya koderiv dekoderiv URL perestaye buti neobhidnim i ne maye niyakogo vplivu na dovzhinu zakodovanogo znachennya zalishayuchi tu zh samu zakodovanu formu neushkodzhenoyu dlya vikoristannya v relyacijnih bazah danih vebformah ta identifikatorah ob yekta vzagali Standartom Base64 koduvannya URL adres viznayetsya variant koli simvoli i zaminyuyutsya vidpovidno na i RFC3548 rozdil 4 Inshij variant nazivayetsya zminenij Base64 dlya regulyarnih viraziv vikoristovuye zamist dlya togo shob zaminiti standartnij Base64 tomu sho obidva i mozhut buti zarezervovani dlya regulyarnih viraziv varto zaznachiti sho v IRCu varianti mozhe ne pracyuvati v comu konteksti Ye inshi varianti yaki vikoristovuyut abo yaksho ryadok Base64 povinnen buti vikoristanij razom z identifikatorami dlya program abo dlya vikoristannya v tokenah imen XML Nmtoken abo v obmezhenishih identifikatorah XML Name Radix 64Radix 64 riznovid Base64 priznachenij dlya koduvannya dvijkovih danih v tekstovij format sho vikoristovuyetsya v PGP Vid Base64 vidriznyayetsya tim sho v kinec dodayetsya kontrolna suma dovzhinoyu 24 bita Inshi zastosuvannyaIsnuye bezlich variantiv zastosuvannya Base64 Napriklad Thunderbird ta Mozilla vikoristovuvali Base64 dlya prihovuvannya paroliv v POP3 Base64 chasto vikoristovuyetsya yak racionalnij metod prihovati sekret bez vitrat na kriptografichne upravlinnya klyuchami Base64 chasto vikoristovuyetsya dlya vstavki dvijkovih danih u fajli XML vikoristovuyuchi sintaksis na zrazok lt Data encoding base64 gt lt Data gt Prikladom takogo vikoristannya Base64 koduvannya mozhe sluguvati Firefox sho zberigaye znachki sajtiv v bookmarks html Opera vikoristovuye Base64 dlya zberezhennya vebstorinok v formati mht Skaneri spamu yaki ne dekoduyut povidomlennya v Base64 chasto propuskayut povidomlennya v Base64 oskilki voni zdayutsya dosit vipadkovimi abo ne mistyat klyuchovi slova v teksti Base64 shob buti prijnyatimi za spam Ce vikoristovuyut spameri dlya obhodu osnovnih antispamovih instrumentiv Base64 vikoristovuyetsya dlya priyednannya malyunkiv ta inshih binarnih fajliv u formati elektronnih knig FictionBook Base64 vikoristovuyetsya dlya koduvannya binarnih fajliv takih yak zobrazhennya v skriptah shob uniknuti zalezhnosti vid zovnishnih fajliv V Data URI mozhna vikoristovuvati Base64 predstavlennya fajla Tak napriklad fonovi zobrazhennya mozhut buti vkazani u fajli kaskadnih tablic stiliv yak dani URI zamist togo shob trimati yih v okremih fajlah zobrazhen Div takozhBase58 MIME en UUEPosilannyaBase64 algoritm realizovano na C 24 lyutogo 2011 u Wayback Machine Base64 algoritm realizovano na Java 6 lipnya 2008 u Wayback Machine Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno lipen 2017