Base64 Kodlayıcı

Oflayn işləyirHeç nə yüklənmirPulsuz, qeydiyyatsız

PEM blokları, e-poçt qoşmaları və -A olmadan openssl bölünmüş sətir gözləyir

Hər şey yerli olaraq kodlanır. Fayllar FileReader ilə oxunur və heç vaxt yüklənmir.

Base64 kodlayın və açın — istənilən dil üçün düzgün UTF-8 emalı ilə. Həmçinin istənilən faylı HTML və ya CSS-ə yapışdırmağa hazır Base64 data URI-yə çevirir.

Base64 necə işləyir

Base64 üç baytı — 24 biti — götürür və onları altı bitlik dörd qrupa bölür. Hər 6 bitlik qrup A–Z, a–z, 0–9, plyus və slaşdan ibarət 64 simvolluq əlifbada indeks rolunu oynayır. Girişin uzunluğu üçün misli deyilsə, nəticə bir və ya iki bərabərlik işarəsi ilə doldurulur — bu qədər Base64-ün = və ya == ilə bitməsinin səbəbi budur.

URL üçün təhlükəsiz variant plyus və slaşı defis və alt xətlə əvəz edir, çünki həmin iki simvolun URL daxilində öz mənası var və əks halda Base64-ün üstündən bir də faiz kodlaması tələb olunardı.

Buraxılan UTF-8 addımı

Brauzerin btoa() funksiyası yalnız 0–255 aralığındaki simvolları qəbul edir, ona görə btoa("Ünsiyyət") istisna atır — ə hərfi U+0259-dur, hədddən xeyli yuxarı. Həlli mətni əvvəlcə UTF-8 baytlarına çevirmək, sonra həmin baytları Base64-ə kodlamaqdır. Bu alət məhz belə edir — qeyri-latın mətnin burada düzgün gedib-qayıtmasının, sadə tətbiqlərdə isə pozulmasının səbəbi budur.

Yuxarıdaki artım rəqəminin baytla verilməsinin səbəbi də elə həmin addımdır. Üç bayt həmişə dörd simvola çevrilir, amma simvol bayt deyil: UTF-8-də kiril hərfi iki, çin-yapon simvolu üç baytdır. Simvolları saymaq eyni kodlamanı olduğundan bir neçə dəfə baha göstərərdi.

Tez-tez verilən suallar

Base64 şifrələmədirmi?

Xeyr, və onu belə saymaq həqiqi təhlükəsizlik səhvidir. Base64 kodlamadır — istənilən adam onu açarsız, dərhal aça bilər; bu səhifə də elə bunu edir. O, gizlətmək üçün deyil, ikili məlumatı yalnız mətn qəbul edən kanallardan təhlükəsiz keçirmək üçün mövcuddur.

Kodlanmış mətn niyə böyüyür?

Base64 hər üç baytı dörd ASCII simvolu ilə göstərir, ona görə nəticə girişdən **baytla** təxminən 33 faiz böyük olur, üstəgəl doldurma. Diqqət edin, ölçü simvolla deyil, baytladır: bir yapon simvolu üç UTF-8 baytıdır, ona görə yeddi yapon simvolu 28 Base64 simvoluna çevrilir — simvol sayında dörd dəfə artım, baytda isə adi üçdə bir.

Bu, qeyri-ingilis mətni düzgün emal edirmi?

Bəli. Mətn əvvəlcə UTF-8 kimi kodlanır, sonra Base64-ə çevrilir. Bu vacibdir, çünki brauzerin daxili btoa funksiyası 255 kod nöqtəsindən yuxarı hər simvolda xəta verir — bu, bütün diakritikalı latın hərfləri, eləcə də bütün kiril, ərəb, çin yazısı və emojidir.

Fayl yerinə nə vaxt data URI işlətməli?

Əlavə şəbəkə sorğusuna dəyməyəcək kiçik resurslar üçün — bir neçə kilobaytlıq ikona və ya şrift alt çoxluğu. Təxminən 5 KB-dan yuxarı ölçü cəriməsi qənaət edilən sorğudan ağır gəlir; üstəlik data URI-lər onlara istinad edən faylın içinə yerləşdiyi üçün ayrıca keşlənə bilmir.

Oxşar alətlər