Nasıl yapılır

Base64 nasıl anlaşılır ve çözülür

6 dk okuma

Base64’ü tanımak, bayt ya da metne çözmek, padding mantığını anlamak ve onu şifreleme sanmamak için pratik bir rehber.

Base64 tek cümlede

Base64, ikiliden metne bir kodlamadır: herhangi baytları 64 karakterlik bir metin alfabesiyle temsil eder. JSON, e-posta, HTTP başlıkları, Data URI’ler ve bazı token’lar gibi metin bekleyen sistemlerden veri geçirmek için kullanılır.

Şifreleme değildir. Bir Base64 dizesi parola olmadan çözülebilir; bu yüzden sırları korumak için kullanılmamalıdır.

Base64 adayı nasıl tanınır

Standart Base64 büyük harfler, küçük harfler, rakamlar, +, / ve isteğe bağlı = padding kullanır. Satır sonları ve boşluklar yok sayıldığında uzunluk genellikle dördün katıdır.

URL güvenli varyant Base64URL çoğu zaman + ve / yerine - ve _ kullanır. Görünüm yalnızca ipucudur: güvenilir test, çözmek ve sonucu incelemektir.

Güvenli sırayla çözün

Önce orijinal dizenin kopyasını saklayın. Zararsız boşlukları kaldırın, alfabe ve padding’i kontrol edin, sonra baytlara çözün. Ardından bu baytları UTF-8 metin, JSON, görüntü, sertifika, sıkıştırılmış veri veya başka bir format olarak yorumlayın.

Çıktı okunamıyorsa bu mutlaka hata değildir. Geçerli Base64 içinde ikili veri, sıkıştırılmış baytlar veya ayrı bir adım gerektiren şifreli içerik olabilir.

Kodlamanın içinde ne olur

Base64 giriş baytlarını üçlü gruplar halinde işler. Bu 24 bit dört adet 6 bitlik değere bölünür ve her değer Base64 alfabesinden bir karakter seçer. Man kelimesi TWFu olur.

Kontrol edilmiş metin örneği olarak Hello, Morse!, SGVsbG8sIE1vcnNlIQ== biçiminde kodlanır ve aynı UTF-8 metne geri çözülür.

Padding ve Unicode

Giriş uzunluğu üçe bölünmüyorsa Base64 padding ekler. Bir kalan bayt iki =, iki kalan bayt bir = üretir. Padding, son gruptan kaç bayt geri alınacağını çözücüye söyler.

Base64 soyut karakterleri değil baytları kodlar. Café ☕ gibi metin önce UTF-8 baytlarına dönüşür; bu baytlar Q2Fmw6kg4piV olarak kodlanır.

Yaygın kullanımlar ve güvenlik sınırları

Base64 API’lerde, JSON alanlarında, e-posta eklerinde, Basic Auth başlıklarında, JWT parçalarında, Data URI görüntülerinde, sertifikalarda ve yapılandırma dosyalarında görülür. Her durumda taşıma sorununu çözer: baytları metin kanallarına uygun hale getirir.

Base64 için “şifre çözme” demeyin ve parolaları, API anahtarlarını ya da kişisel verileri yalnızca Base64 ile saklamayın. Gizlilik gerekiyorsa taşıma kodlamasından önce gerçek şifreleme kullanın.

Sık sorulan sorular

= karakterleri padding’dir. Özgün bayt uzunluğu üçün katı değilse son 4 karakterlik grubu tamamlarlar.

Evet. Base64 şifreli baytları taşıyabilir, fakat kendisi yalnızca dış temsildir. Çözme metin kılıfını kaldırır; içeriğin şifresini çözmez.

Her 3 giriş baytı 4 metin karakterine dönüşür. Bu yüzden kodlanmış biçim, satır sonları veya başka biçimlendirme eklenmeden önce yaklaşık üçte bir daha büyüktür.

Ayrıca bakınız