Ana içeriğe geç

Base64

Okunuşu
beys altmış dört
Güncellendi 1 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/base64

Kısaca

Base64, resim ya da anahtar gibi her tür ikili veriyi yalnızca 64 güvenli metin karakteriyle yazar; böylece veri metin için yapılmış sistemlerden geçebilir.

Base64 nedir?

Base64 byte'ları düz metne çevirir. Veriyi üçer byte'lık parçalar hâlinde alır, bu 24 biti 6 bitlik dört gruba böler ve her grubu 64 karakterden biriyle yazar: A'dan Z'ye ve a'dan z'ye harfler, 0'dan 9'a rakamlar, bir de + ve /. Veri üçer byte'lık gruplara tam bölünmediğinde sonu = işaretleriyle doldurulur.

Base64'ün var olma nedeni, metin için yapılmış pek çok sistemin ham byte'ları bozabilmesidir: e-posta, JSON, URL'ler, HTML ve HTTP başlıkları. Bu sayede bir resim bir e-postanın ya da bir JSON alanının içinde taşınabilir, küçük bir dosya data URL olarak doğrudan web sayfasına yerleşebilir ve HTTP Basic kimlik doğrulaması kullanıcı adıyla parolayı taşır. base64url adlı bir türü + ve / yerine - ve _ kullanır; sonuç adreslerde ve dosya adlarında güvenle kullanılabilir. JWT'ler bu türü kullanır.

Bedeli boyuttur: her 3 byte 4 karaktere dönüşür, yani kodlanmış metin veriden yaklaşık üçte bir daha büyüktür. Ayrıca Base64 bir kodlamadır, şifreleme değildir. Herkes onu bir anda çözebilir, dolayısıyla hiçbir şeyi gizlemez: Base64 ile yazılmış bir parola, düz metin bir parola kadar açıktadır.

Önemli noktalar

  • Base64 her tür byte'ı 64 metin karakteriyle yazar.
  • Her 3 byte 4 karaktere dönüşür; veri yaklaşık üçte bir büyür.
  • İkili veriyi e-posta, JSON, URL'ler ve HTTP başlıkları üzerinden taşır.
  • Base64 bir kodlamadır, şifreleme değildir: herkes onu çözebilir.

Örnek

JavaScript'te Base64 kodlama ve çözmejavascript
const encoded = btoa("hi!");   // "aGkh"
const decoded = atob(encoded); // "hi!"

// btoa only takes Latin-1 text, so other text goes through its UTF-8 bytes first
const bytes = new TextEncoder().encode("çay");
const safe = btoa(String.fromCharCode(...bytes)); // "w6dheQ=="

Sık sorulan sorular

Base64 bir şifreleme mi?

Hayır. Base64 yalnızca byte'ların nasıl yazıldığını değiştirir ve herkes onu bir anahtar olmadan geri çevirebilir. Veriyi gizli tutmak için şifreleyin; Base64 yalnızca sonucu metin olarak taşımanın bir yoludur.

Base64 neden bazen = ya da == ile bitiyor?

Base64 üçer byte'lık gruplarla çalışır. Son grupta yalnızca bir ya da iki byte kaldığında, çıktının uzunluğu dördün katı olsun diye sonuna == ya da = eklenir. JWT'ler gibi bazı biçimler bu dolguyu kullanmaz.

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar