Кіріспе
64 символды пайдаланатын екілік-мәтіндік кодтау схемаларының тобы (толтырумен бірге) Компьютерлік бағдарламалауда Base64 – екілік деректерді 64 бірегей символмен шектелген, басып шығаруға болатын символдар тізбегіне түрлендіретін екілік-мәтіндік кодтау схемаларының тобы. Нақтырақ айтқанда, бастапқы екілік деректер бір уақытта 6 биттен алынады, содан кейін осы 6 биттік топ 64 бірегей символдың бірімен сәйкестендіріледі. Барлық екілік-мәтіндік кодтау схемалары сияқты, Base64 екілік форматта сақталған деректерді тек мәтіндік мазмұнды сенімді түрде қолдайтын арналар арқылы жеткізуге арналған. Base64 әсіресе World Wide Web-те кең таралған, онда оның қолданылуының бір түрі – HTML және CSS файлдары сияқты мәтіндік файлдардың ішінде сурет файлдарын немесе басқа екілік файлдарды ендіру мүмкіндігі. Base64 электрондық поштаға қосымшаларды жіберу үшін де жиі қолданылады, себебі SMTP протоколының бастапқы нұсқасы тек 7 биттік ASCII символдарымен жұмыс істеуге арналған. Қосымшаны жібермес бұрын Base64 форматына кодтап, ал алғаннан кейін декодтау арқылы, ескі SMTP серверлері қосымшаға кедергі келтірмейтініне көз жеткізіледі. Base64 кодтау бастапқы екілік деректердің көлеміне қатысты 33-37% үстеме шығынды тудырады (кодаудың өзі 33%, енгізілген жол үзілістерінен 4%-ға дейін).
In computer programming, Base64 is a group of binary to text encoding schemes that transforms binary data into a sequence of printable characters, limited to a set of 64 unique characters. More specifically, the source binary data is taken 6 bits at a time, then this group of 6 bits is mapped to one of 64 unique characters. As with all binary to text encoding schemes, Base64 is designed to carry data stored in binary formats across channels that only reliably support text content. Base64 is particularly prevalent on the World Wide Web where one of its uses is the ability to embed image files or other binary assets inside textual assets such as HTML and CSS files. Base64 is also widely used for sending e mail attachments, because SMTP – in its original form – was designed to transport 7 bit ASCII characters only. Encoding an attachment as Base64 before sending, and then decoding when received, assures older SMTP servers will not interfere with the attachment. Base64 encoding causes an overhead of 33–37% relative to the size of the original binary data (33% by the encoding itself; up to 4% more by the inserted line breaks).
Дизайн
64 белгіден тұратын жиынтық, 64 цифрлық мәнді бейнелеу үшін таңдалады және әртүрлі жүзеге асыруларда өзгеше болуы мүмкін. Басты стратегия – көптеген кодтауларға ортақ және басып шығаруға жарамды 64 белгіні таңдау. Бұл комбинация деректердің 8 биттік таза емес ақпараттық жүйелер арқылы, мысалы электрондық пошта арқылы берілу кезінде өзгеру қаупін азайтады. Мысалы, MIME-нің Base64 жүзеге асыруы алғашқы 62 мән үшін A–Z, a–z және 0–9 белгілерін пайдаланады. Басқа нұсқалар да осы қасиетке ие, бірақ соңғы екі мән үшін таңдалған символдармен ерекшеленеді, мысалы UTF-7. Осы типтегі кодтаудың алғашқы мысалдары бір операциялық жүйеде жұмыс істейтін жүйелер арасындағы қосылыс арқылы байланыс үшін жасалған, мысалы UNIX үшін uuencode және TRS-80 үшін BinHex (кейін Macintosh-қа бейімделген), сондықтан қолдануға қауіпсіз белгілер туралы көп болжам жасауға болатын. Мысалы, uuencode үлкен әріптерді, цифрларды және көптеген тыныш белгілерді пайдаланады, бірақ кіші әріптерді қолданбайды.
Құпиялылық қамтамасыз етілген пошта
Қазір MIME Base64 деп аталатын кодтаманың алғашқы стандартталған қолданылуы 1987 жылы ұсынған Privacy Enhanced Electronic Mail (PEM) протоколында болды. PEM «басылатын кодтау» схемасын анықтайды, ол Base64 кодтауын пайдаланып, кез келген октеттер тізбесін 6 биттік таңбалардың қысқа жолдарында көрсетілетін форматқа түрлендіреді, бұл SMTP сияқты деректерді жіберу протоколдарында қажеттілік болып табылады. PEM-нің қазіргі нұсқасы (деректерде көрсетілген) үлкен және кіші әріптерден (A–Z, a–z), сандардан (0–9) және + және / символдарынан тұратын 64 таңбалы әліпбиді қолданады. = символы сондай-ақ толтыру суффиксі ретінде де қолданылады. «Өзгертілген Base64» әліпбиі MIME Base64 әліпбиінен тұрады, бірақ «=» толтыру символын қолданбайды. UTF-7 пошта тақырыптарында (деректерде анықталған) қолдануға арналған, ал «=» символы осы контексте «quoted printable» кодтауын қашқылау символы ретінде резервтелген. Өзгертілген Base64 жай ғана толтыруды жояды және соңғы Base64 цифры пайдалы биттерді қамтитын соңғы Base64 цифрында үш битке дейін пайдаланбаған биттерді қалдырады.
OpenPGP
OpenPGP, сипатталған , Radix 64 кодтауын сипаттайды, сонымен қатар "ASCII бронясы" деп те аталады. Radix 64, MIME-де сипатталған "Base64" кодтауымен бірдей, бірақ оған қосымша 24 биттік CRC қосылады. Тексеру сомасы кодтаудан бұрын кіріс деректері бойынша есептеледі; содан кейін тексеру сомасы да сол Base64 алгоритмімен кодталып, "=" символымен бөлініп, кодталған шығыс деректеріне қосылады.
RFC 3548
, База16, База32 және База64 деректерді кодтау, Base64 кодтауларының, баламалы әліпби кодтауларының және Base32 (сирек қолданылады) және Base16 кодтауларының сипаттамаларын біріктіруге бағытталған ақпараттық (нормативтік емес) хабарлама. Егер іске асырулар нақты талап етілмесе және басқаша нұсқау берілмесе, RFC 3548 іске асыруларға кодтау әліпбиінен тыс символдарды немесе төсемсіз хабарламаларды жасауға тыйым салады, сондай-ақ декодерлер кодтау әліпбиінен тыс символдарды қамтитын деректерді қабылдамауы керек деп жариялайды. Кейбір нұсқалар оларды өріс ажыратқыштарымен шатастыруды болдырмау үшін "=" белгілерін жоюға рұқсат береді немесе талап етеді, немесе мұндай төсемдерді проценттік кодтауды талап етеді. Кейбір кітапханалар '=' символын '.' символымен алмастыруы мүмкін, бұл пайдаланушы деректерінен қапшық атауын кодтағанда қосымшаларды салыстырмалы жолға шабуылға ұшыратуы мүмкін.
Javascript (DOM Web API) (жазбаша жазу)
HTML5 жобалық сипаттамасында анықталған atob және btoa JavaScript әдістері веб-беттерге Base64 мазмұндау және мазмұндаудан шығару мүмкіндігін береді. btoa әдісі толтыру белгілерін шығарады, бірақ atob әдісінің кірісінде олар міндетті емес.