Кіріспе

64 символды пайдаланатын екілік-мәтіндік кодтау схемаларының тобы (толтырумен бірге) Компьютерлік бағдарламалауда Base64 – екілік деректерді 64 бірегей символмен шектелген, басып шығаруға болатын символдар тізбегіне түрлендіретін екілік-мәтіндік кодтау схемаларының тобы. Нақтырақ айтқанда, бастапқы екілік деректер бір уақытта 6 биттен алынады, содан кейін осы 6 биттік топ 64 бірегей символдың бірімен сәйкестендіріледі. Барлық екілік-мәтіндік кодтау схемалары сияқты, Base64 екілік форматта сақталған деректерді тек мәтіндік мазмұнды сенімді түрде қолдайтын арналар арқылы жеткізуге арналған. Base64 әсіресе World Wide Web-те кең таралған, онда оның қолданылуының бір түрі – HTML және CSS файлдары сияқты мәтіндік файлдардың ішінде сурет файлдарын немесе басқа екілік файлдарды ендіру мүмкіндігі. Base64 электрондық поштаға қосымшаларды жіберу үшін де жиі қолданылады, себебі SMTP протоколының бастапқы нұсқасы тек 7 биттік ASCII символдарымен жұмыс істеуге арналған. Қосымшаны жібермес бұрын Base64 форматына кодтап, ал алғаннан кейін декодтау арқылы, ескі SMTP серверлері қосымшаға кедергі келтірмейтініне көз жеткізіледі. Base64 кодтау бастапқы екілік деректердің көлеміне қатысты 33-37% үстеме шығынды тудырады (кодаудың өзі 33%, енгізілген жол үзілістерінен 4%-ға дейін).

Дизайн

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 әдісінің кірісінде олар міндетті емес.