Base64 Енкодер / Base64 Декодер Онлајн

0 chars
0 chars

Дали треба да конвертирате читлив текст во Base64 формат за употреба во HTTP заглавија, или пак да дешифрирате содржина на API токен? Нашиот Base64 Текст Енкодер & Декодер е специјализирана алатка за работа со текстуални низи, која може да се справи и со сложености како дијакритички или специјални знаци.

Работите со слики?
Ако вашиот код започнува со data:image/png... или сакате да конвертирате датотека во текст, оваа алатка ќе ви прикаже само бесмислени знаци. Користете ја нашата специјализирана алатка за конверзија во слика.

Како функционира Base64 форматот?

Многу луѓе го користат Base64 секојдневно, но малкумина знаат како функционира „под хаубата“. Не се работи за магија, туку за едноставна математика со битови.

Нормалниот текст во компјутерот се чува во 8 бита (1 бајт). Сепак, Base64 користи „азбука“ од 64 знаци (A-Z, a-z, 0-9, +, /). Бидејќи 2^6 = 64, еден Base64 знак претставува точно 6 бита информација.

Процес на конверзија (Алгоритъм):

  1. Се земаат три знаци од вашиот текст (3 × 8 бита = 24 бита).
  2. Овие 24 бита се делат на четири групи од по 6 бита.
  3. На секоја група ѝ се доделува знак од Base64 табелата.

Последица: Бидејќи од 3 знаци правиме 4 знаци, добиената Base64 низа е секогаш приближно за 33% подолга од оригиналниот текст.

Проблем со множеството знаци: Зошто обичните Base64 конвертори го уништуваат македонскиот јазик?

Ако некогаш сте се обиделе да го кодирате зборот “Коњ” во конзолата на прелистувачот користејќи ја функцијата btoa('Коњ'), веројатно сте добиле грешка: String contains characters outside of the Latin1 range.

Base64 првично беше дизајниран за 7-битни ASCII знаци. Сепак, македонските, емоџи и други специјални симболи (UTF-8) заземаат повеќе бајти во меморијата (multibyte characters).

  • Буква a = 1 бајт.
  • Буква ѓ = 2 бајти.
  • Емоџи 🚀 = 4 бајти.

Нашата алатка го решава овој проблем. Пред самото кодирање во Base64, правилно го конвертираме текстот во низа од UTF-8 бајти. Благодарение на тоа, можете безбедно да кодирате JSON објекти, македонски текстови и модерни симболи без ризик од оштетување на податоците.

Каде се користи Base64 текстуалното кодирање?

Додека сликите во Base64 главно служат за вметнување во CSS/HTML, текстуалниот Base64 има сосема друга примена во бекенд системите:

1. HTTP Основна Автентикација (HTTP Basic Authentication)

Кога се најавувате на API, заглавието често изгледа вака: Authorization: Basic dXppdmF0ZWw6aGVzbG8= Зад овој код се крие едноставно споено корисничко име и лозинка во формат корисник:лозинка. Нашата алатка ви овозможува лесно да ги генерирате или проверувате овие заглавија.

2. JSON Веб Токени (JWT)

Современите веб-апликации користат т.н. JWT за најавување. Таков токен изгледа како три долги низи одделени со точка. Делот со податоци (Payload) е обичен JSON објект кодиран во Base64.

  • Совет: Обидете се да го залепите средниот дел од вашиот JWT токен овде и да го декодирате. Ќе видите точно кои податоци за вас ги евидентира апликацијата (на пр. ID на корисник, истекување).

3. Конфигурациски датотеки (Kubernetes Secrets)

Платформи како Kubernetes ги чуваат тајните податоци (Secrets) во конфигурациски YAML датотеки токму во Base64. Не се работи за шифрирање, туку за начин како да се зачуваат бинарни податоци или текст со проблематични знаци (нови редови, наводници) во текстуална датотека.

Што е “URL Safe Base64 кодирање” и зошто е важно?

Стандардната Base64 азбука содржи знаци + (плус) и / (коса црта). Двата овие знаци имаат посебно значење во URL адресите:

  • / ги одделува директориумите.
  • + често се толкува како празно место.

Ако испратите стандарден Base64 во URL параметар (на пр. site.com?token=ab/cd+ef), серверот може погрешно да ги прочита податоците.

Решение (URL Безбеден режим): Нашиот прекинувач ја активира варијантата Base64URL (според RFC 4648), која ги врши следниве промени:

  • + се менува во - (цртичка).
  • / се менува во _ (долна црта).
  • На крајот се отстрануваат знаците = (padding), кои не се потребни во URL.

Мит: Base64 не е шифрирање!

Важно е да се разбере суштинската разлика што почетниците често ја мешаат:

  1. Кодирање (Encoding - Base64): Служи за пренос на податоци. Тоа е како да спакувате нешто во куфер за да не се скрши по пат. Кој и да го најде куферот, може да го отвори (декодира) и да ја види содржината. Не е безбедно за тајни податоци.
  2. Шифрирање (Encryption - AES, RSA): Ги заклучува податоците со клуч. Без клучот, не можете да пристапите до содржината.
  3. Хеширање (Hashing - SHA, MD5): Еднонасочен процес (на пр. за чување лозинки). Од резултатот не може да се добие оригиналниот текст.

Ако треба да испратите лозинка или чувствителни податоци, само Base64 не е доволно. Мора да користите HTTPS (SSL/TLS), кое го шифрира преносот.


Често поставувани прашања (ЧПП)

Што значат знаците "=" на крајот од низата? Тоа е т.н. "padding" (полнење). Бидејќи Base64 ги кодира податоците во групи од 3 знаци, може да се случи должината на оригиналниот текст да не е деллива со три. Знаците `=` се додаваат на крајот за декодерот да знае колку бита треба да игнорира на крајот.
Зошто декодираниот текст се прикажува како "расипан чај"? Веројатно се обидувате да декодирате податоци кои не се текст. Ако Base64 низата претставува компресирана датотека (ZIP), слика или шифрирани податоци, претворањето во текст (UTF-8) нема смисла. Обидете се да го дознаете потеклото на податоците.
Дали алатката функционира офлајн? Да. Целата логика на конверзија е напишана во JavaScript и работи директно во вашиот прелистувач. Штом страницата ќе се вчита, можете да се исклучите од интернет и алатката сепак ќе функционира. Вашите податоци не се испраќаат никаде.