Base64 kodlama ve çözme

Metin veya dosyaları Base64'e kodlayın ve tarayıcıda dizelerin kodunu tekrar baytlara dönüştürün. Dolgu örnekleri, RFC 4648 alfabesi ve URL güvenli varyantı içerir.

Tüm hesaplamalar tarayıcıda çalışır. Girdiğiniz hiçbir şey sunucuya gönderilmez.

01 hesaplayıcı

Sonuçlar yazarken güncellenir. Ctrl/Cmd+Enter birincil sonucu kopyalar.

Sonuç

    Çözümü göster

      Base64 Kodlama ve Kod Çözme, RFC 4648 alfabesini kullanarak rastgele baytları bir ASCII dizesine dönüştürür ve bu dizeyi orijinal baytlara geri döndürür. Metin modu, UTF-8 gibi bir karakter kodlamasını kabul eder; dosya modu, tarayıcının Dosya Okuyucusu aracılığıyla bir yüklemeyi okur ve yerleştirme için bir data: URI'si yayabilir. Kodlama şifreleme değildir. Dizeyi alan herkes onu çözebilir.

      Tüm kodlama ve kod çözme tarayıcınızda çalışır. Yapıştırdığınız hiçbir şey sunucuya gönderilmez.

      Metni veya dosyayı Base64'e kodlayın

      Concept diagram: Girdiler leads to Metni veya dosyayı Base64'e kodlay… leads to SonuçGirdilerMetni veya dosyayıBase64'e kodlay…Sonuç
      Metni veya dosyayı Base64'e kodlayın.

      Kodlama ham baytları alır ve A'dan Z'ye, a'dan z'ye, 0'dan 9'a, artı, eğik çizgi ve dolgu `='dan oluşan bir dize yazar. Metni yapıştırın veya bir dosya seçin, kaynak metin olduğunda karakter kodlamasını seçin ve çıktıyı okuyun.

      Dosya modu, ikili kanal olmadan JSON, XML veya e-posta içinde seyahat etmesi gereken küçük resimlere ve belgelere uygundur.

      Çıktı, eski posta ağ geçitleri veya XML'e kopyalayıp yapıştırma gibi rastgele ikili dosyaları bozan sistemler aracılığıyla aktarım için güvenlidir. Tasarım gereği girişten daha uzundur. Geçersiz boş giriş dize üretmez; araç, karakterleri yaymadan önce baytları bekler.

      Base64 dizesinin kodunu verilere geri döndürün

      Concept diagram: Girdiler leads to Base64 dizesinin kodunu verilere g… leads to SonuçGirdilerBase64 dizesinin kodunuverilere g…Sonuç
      Base64 dizesinin kodunu verilere geri döndürün.

      Kod çözme, alfabe aramasını tersine çevirir, orijinal bit akışını yeniden oluşturur ve metni veya indirilebilir bir dosyayı döndürür. Sondaki dolgu = karakterleri önemlidir: son tamamlanmamış grupta kaç bayt olduğunu belirtirler. Alfabenin dışındaki karakterler sessiz kısmi kod çözme yerine açık bir hataya neden olur.

      Boşluklar genellikle göz ardı edilir, böylece PEM sertifikalarından veya MIME gövdelerinden kopyalanan dizeler çalışmaya devam eder. Base64'e benzeyen ancak URL açısından güvenli alfabeyi kullanan bir dize, URL açısından güvenli kod çözme moduna ihtiyaç duyar; aksi takdirde kısa çizgi ve alt çizgi, standart alfabede yasa dışı olduğu gerekçesiyle reddedilecektir.

      Base64 kodlamanın nasıl çalıştığını anlayın

      Process with 3 steps: Enter how Base64 encoding works; Read the main result; Check the breakdown1Enter how Base64encoding works2Read the main result3Check the breakdown
      Base64 kodlamanın nasıl çalıştığını anlayın.

      Base64, girişi üç baytlık (24 bit) bloklar halinde işler. Bu 24 bit, 6 bitlik dört gruba ayrılır. Her 6 bitlik değer, 64 karakterlik alfabede 0'dan 63'e kadar bir dizindir. Dolayısıyla üç giriş baytı dört çıkış karakterine dönüşür.

      Bytes:  [ byte1 ][ byte2 ][ byte3 ]
      Bits:   aaaaaaaa bbbbbbbb cccccccc
      Groups: aaaaaa aabbbb bbbbcc cccccc
      Chars:  Char1  Char2  Char3  Char4

      Üç bayttan az kaldığında, kodlayıcı yine de dört karakter yayınlar ancak kod çözücünün orijinal uzunluğu bilmesi için dolgu ekler. Bitlerin yeniden gruplanması algoritmanın tamamını oluşturur; sağlama toplamı ve anahtar yoktur.

      Köpek kelimesini adım adım kodlayın

      Process with 3 steps: Enter Encode word Dog step by step; Read the main result; Check the breakdown1Enter Encode word Dogstep by step2Read the main result3Check the breakdown
      Köpek kelimesini adım adım kodlayın.

      'Köpek' kelimesi üç ASCII bayttır, dolayısıyla bir Base64 grubunu doldurur ve dolgu karakterleri olmadan kodlar. Fikstür çıkışı 'RG9n'dir. Baytları bitlere doğru yürümek, 6 bitlik dizinler halinde yeniden gruplandırmak ve RFC 4648 alfabesini okumak, bu dört karakterin neden göründüğünü ve herhangi bir üç baytlık bloğun nasıl aynı yolu izlediğini gösterir.

      1. Baytları yazın. 'D' = 0x44 = '01000100' 'o' = 0x6F = '01101111' 'g' = 0x67 = '01100111'

      2. 24 biti birleştirin. '01000100 01101111 01100111'

      3. 6 bitlik gruplara bölün. '010001' '000110' '111101' '100111'

      4. Her grubu ondalık dizine dönüştürün. 17, 6, 61, 39

      5. Alfabeye bakın. Dizin 17 = 'R', 6 = 'G', 61 = '9', 39 = 'n'

      Sonuç: 'RG9n'. 'RG9n' kodunun çözülmesi, üç orijinal baytı ve UTF-8 veya ASCII altındaki 'Köpek' metnini döndürür.

      Eşittir işaretiyle doldurmayı anlayın

      Concept diagram: Girdiler leads to Eşittir işaretiyle doldurmayı anla… leads to SonuçGirdilerEşittir işaretiyledoldurmayı anla…Sonuç
      Eşittir işaretiyle doldurmayı anlayın.

      Bayt sayısı üçün katı olmadığında dolgu görünür. Geriye kalan bir bayt, iki alfabe karakteri ve iki '=' işareti üretir. Geriye kalan iki bayt, üç karakter ve bir = üretir. DoRG8= ve DogsRG9ncw== düzenekleri, doldurulmamış üç baytlık `Dog' sözcüğünün yanında kalan her iki durumu da gösterir.

      InputBytesEncodedPadding
      Dog3RG9nnone
      Do2RG8=one =
      Dogs4RG9ncw==two =

      'Yap' iki bayttır: '01000100 01101111'. 6 bitlik gruplandırmanın ardından yalnızca üç anlamlı karakter ("RG8") için yeterli bit vardır ve dördüncü yuvayı bir dolgu "=" doldurur. 'Köpekler' dört bayttır: 'RG9n' olarak kodlayan tam üç baytlık bir grup, ardından 'cw==' olarak kodlayan bir baytlık geri kalan. Bit uzunluğunu ayarlamadan dolguyu elle çıkarmak kod çözmeyi keser; Yapıştırırken = karakterlerini yerinde bırakın.

      Base64 alfabesini okuyun

      Concept diagram: Girdiler leads to Base64 alfabesini okuyun leads to SonuçGirdilerBase64 alfabesiniokuyunSonuç
      Base64 alfabesini okuyun.

      RFC 4648, 64 karaktere ek olarak = doldurma işaretini tanımlar. 0 - 25 arası dizinler "A" - "Z", 26 - 51 arası "a" - "z", 52 - 61 arası "0" - "9", dizin 62 "+" ve dizin 63 "/"'dir.

      Dizin 0, '0' değil, 'A'dır; bu, rakamların alfabenin başında yer almasını bekleyen herkesi yanıltır.

      Index rangeCharacters
      0 to 25A to Z
      26 to 51a to z
      52 to 610 to 9
      62+
      63/
      padding=

      Hesap makinesinin alfabe paneli, kodlayıcının kullandığı tablonun aynısını listeler, böylece şüpheli bir karakter standart kümeye göre kontrol edilebilir. Tam dize ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ şeklindedir.

      URL güvenli Base64 varyantını kullanın

      Concept diagram: Girdiler leads to URL güvenli Base64 varyantını kull… leads to SonuçGirdilerURL güvenli Base64varyantını kull…Sonuç
      URL güvenli Base64 varyantını kullanın.

      URL güvenli alfabe (base64url), '+' yerine '-' ve '/' yerine '_' koyar. Bazı protokollerde dolgu yapılmayabilir. JSON Web Belirteçleri bu değişkeni kullanır, böylece belirteç bölümleri artı ve eğik çizgi karakterlerini yüzde olarak kodlamadan URL'lerde ve HTTP başlıklarında yer alabilir.

      Standart ve URL güvenli dizeler birbirinin yerine kullanılamaz. Bir JWT yükünün standart alfabeyle kodunun çözülmesi kısa çizgilerde başarısız olur. Araç, hem kodlama hem de kod çözme için açık bir URL güvenli mod sunar. Bir URL'yi yüzde olarak kodlamak farklı bir sorundur; hedef Base64 yerine RFC 3986'nın kaçması olduğunda URL Kodlama ve Kod Çözme sayfasını kullanın.

      Boyut artışını hesaba katın

      Concept diagram: Girdiler leads to Boyut artışını hesaba katın leads to SonuçGirdilerBoyut artışını hesabakatınSonuç
      Boyut artışını hesaba katın.

      Her üç bayt dört karaktere dönüşür, dolayısıyla kodlanmış uzunluk girişin yaklaşık 4/3'ü kadardır; satır sonlarından önce yüzde 33'lük bir artış olur. Dolgu, son gruba bir veya iki ekstra karakter ekleyebilir. Veri URI'leri ve e-posta ekleri bu maliyeti hızlı bir şekilde hisseder: 300 KB'lik bir resim yaklaşık 400 KB'lik bir metne dönüşür.

      encoded_length ≈ 4 × ceil(byte_length / 3)

      MIME'de yaygın olan 76 karakterlik satır kaydırma, en üste yeni satır baytları ekler. Boyut önemli olduğunda ikili ekleri veya sıkıştırılmış biçimleri tercih edin; Kanal gerçekten ham bayt taşıyamadığında Base64'ü kullanın.

      Bir karakter kodlaması seçin

      Concept diagram: Girdiler leads to Bir karakter kodlaması seçin leads to SonuçGirdilerBir karakter kodlamasıseçinSonuç
      Bir karakter kodlaması seçin.

      Base64 soyut karakterleri değil baytları kodlar. Aynı harfler UTF-8, UTF-16, Shift JIS veya Big5 altında farklı baytlar üretir. Kod çözme ve ardından yanlış karakter kümesiyle yorumlama, Base64 katmanı mükemmel olsa bile mojibake sağlar, bu nedenle metin modu karakter kümesinin kodlamada üreticiyle ve kod çözmede tüketiciyle eşleşmesi gerekir.

      CharsetTypical use
      UTF-8Default for modern text and APIs
      Windows-1252Legacy Western European text
      UTF-16 LE / BESome Windows and Java payloads
      Shift JISOlder Japanese text
      Big5Older Traditional Chinese text

      'Köpek' kelimesi için ASCII ve UTF-8 aynı üç baytı üretir, dolayısıyla 'RG9n' aynıdır. ASCII olmayan metin birbirinden farklıdır. Kodlamadan önce yapımcıyla eşleşen karakter setini seçin ve kod çözme sonrasında aynı karakter setini seçin, aksi takdirde hata yukarı doğru olduğunda gidiş dönüş bir Base64 hatası gibi görünecektir.

      Sık sorulan sorular

      Base64 şifrelemesi mi?

      Hayır. Base64 herkesin genel alfabeyle tersine çevirebileceği bir kodlamadır. Hiçbir şeyi gizlemiyor. Gizlilik gerektiğinde gerçek bir şifreleme algoritması kullanın; Bir kanalın ASCII-güvenli baytlara ihtiyacı olduğunda Base64'ü kullanın.

      Base64 çıktısı neden eşittir işaretiyle bitiyor?

      = karakterleri dolguludur. Son giriş grubunun üç yerine bir veya iki bayta sahip olduğunu işaretlerler. 'Do', 'RG8=' ve 'Dogs', 'RG9ncw==' olarak kodlanır. Protokol, bunun çıkarıldığını belgelemedikçe, kod çözme sırasında dolguyu koruyun.

      Köpek neyi kodlar?

      'Köpek' hiçbir dolgu olmadan 'RG9n' olarak kodlanır, çünkü üç bayt bir Base64 grubunu tam olarak doldurur. Adım adım bit yeniden gruplaması bu sayfadaki çalışılan örnekte gösterilmektedir.

      Standart ve URL güvenli Base64 arasındaki fark nedir?

      URL-güvenli Base64, '+' ve '/' yerine '-' ve '_' kullanır. JWT'ler ve bazı dosya adı yerleştirmeleri, URL güvenli alfabeyi kullanır. Yanlış alfabeyle kod çözme, değiştirilen karakterlerde başarısız olur.

      Base64 orijinalinden ne kadar daha büyük?

      Yaklaşık üçte biri daha büyük. Üç bayt dört karaktere dönüşür, dolayısıyla doldurma ve satır sonlarından önce oran 4/3 olur. 3.000 baytlık bir yük, Base64'ün 4.000 karakterine dönüşür.

      Base64 yalnızca metni değil, bir dosyayı da kodlayabilir mi?

      Evet. Dosya modu, yüklemeyi tarayıcıya okur ve ham baytlarını kodlar. Ters yol, indirilebilir bir blobun kodunu çözer. Büyük dosyalar sekmedeki bellek kullanımını artırır; yüklemeleri mütevazı tutun.

      Kodu çözülen metin, doğru kod çözüldükten sonra neden yanlış görünüyor?

      Base64 katmanı baytları geri yükledi ancak bu baytları yorumlamak için kullanılan karakter kodlaması üreticiyle eşleşmiyor. Önce UTF-8'i, ardından kaynak sistemin gerçekte kullandığı karakter kümesini deneyin.

      Bu araç yapıştırılan gizli dizileri yüklüyor mu?

      Hayır. Kodlama ve kod çözme yerel olarak çalışır. Kutuya yapıştırılan API anahtarları, belirteçler ve sertifika parçaları bir sunucuya gönderilmez. Bu söz, Hızlı Hesap Makinelerindeki tüm kodlama sayfalarının tasarım kuralıyla eşleşir.

      Base64, URL kodlamayla aynı mıdır?

      Hayır. Base64, taşıma için ikili dosyayı 64 karakterlik bir alfabeye eşler. URL kodlaması (yüzde kodlaması), RFC 3986 uyarınca URI'lerin içindeki ayrılmış karakterlerden kaçar. Bunlar farklı sorunları çözer ve birbirlerinin yerine geçmezler.

      Alfabeyi hangi RFC tanımlar?

      RFC 4648, burada kullanılan standart ve URL güvenli Base64 alfabelerini ve doldurma kurallarını tanımlar. RFC 2045 gibi daha eski belgeler, Base64'ü MIME bağlamında benzer mekanizmalarla açıklar.

      Özet

      Base64 Kodlama ve Kod Çözme, baytları 6 bitlik gruplar halinde RFC 4648 alfabesine eşler ve tarayıcıda işlemi yerel olarak tersine çevirir. "Köpek", "RG9n" olur, "Do", "RG8=" olur ve "Köpekler", bir ve iki baytlık kalanlar için dolguyu gösteren "RG9ncw==" olur.

      URL güvenli alfabe, +// yerine -/_ ifadesini kullanır, çıktı yaklaşık üçte bir oranında artar ve karakter kümesi seçimi, metin modunun kodlayıcıya hangi baytları besleyeceğini belirler. Yapıştırılan hiçbir şey yüklenmez.