Sonuç —
base64
Base64 Nedir?
Base64, ikili (binary) verileri metin tabanlı bir formata dönüştürmek için kullanılan bir kodlama (encoding) yöntemidir. Veriyi gizlemek veya korumak amacıyla kullanılmaz; bu nedenle şifreleme değildir.
Base64 ile kodlanan bir veri, uygun bir araç veya komut kullanılarak herkes tarafından kolayca decode edilerek orijinal hâline dönüştürülebilir. Temel amacı; binary verilerin e-posta, HTTP header'ları, JSON, XML veya benzeri metin tabanlı ortamlarda güvenilir şekilde taşınmasını sağlamaktır.
Encode ve Decode Arasındaki Fark
Encode: Metin veya binary veriyi Base64 formatına dönüştürür.
Decode: Base64 formatındaki veriyi tekrar orijinal byte/veri hâline dönüştürür.
Örneğin Merhaba metni Base64 ile kodlandığında SGVyaGFiYQ== sonucunu verir. Bu işlem herhangi bir gizlilik sağlamaz; aynı veri tekrar decode edilerek Merhaba elde edilebilir.
Base64 Ne Zaman Kullanılır?
Base64; binary verilerin yalnızca metin taşıyabilen sistemlerde kullanılabilmesi gereken durumlarda oldukça yaygındır. Örneğin:
HTTP Basic Authentication header'larında kimlik bilgilerinin taşınması,
E-posta eklerinin MIME formatında kodlanması,
Küçük görsellerin HTML veya CSS içerisinde
data:URI olarak gömülmesi,API ve JSON tabanlı sistemlerde binary verilerin metin olarak taşınması,
JWT içerisindeki bölümlerin incelenmesi ve işlenmesi.
Burada önemli bir ayrım vardır: Base64 güvenlik sağlamaz. Örneğin HTTP Basic Authentication içerisinde kullanıcı adı ve parola Base64 ile kodlanır ancak bu işlem parolayı şifrelemez. Bu nedenle Basic Authentication'ın HTTPS gibi güvenli bir TLS bağlantısı üzerinden kullanılması gerekir.
Base64 Varyantları
Standart Base64 dışında farklı kullanım senaryoları için çeşitli varyantlar da bulunur. Özellikle URL ve dosya adı gibi alanlarda kullanılan Base64URL varyantında + ve / karakterleri yerine sırasıyla - ve _ kullanılır.
Ayrıca bazı uygulamalar Base64 verisinin sonundaki = padding karakterlerini kaldırabilir. Bu nedenle Base64 araçlarında standart Base64, URL-safe Base64 ve padding'siz Base64 formatlarıyla karşılaşmak mümkündür.
JWT ve Base64 İlişkisi
JWT (JSON Web Token) yapısındaki header ve payload bölümleri Base64URL ile kodlanır. Ancak bu verilerin Base64URL ile kodlanmış olması onları gizli veya şifreli hâle getirmez. JWT'nin payload bölümü çoğu durumda decode edilerek doğrudan okunabilir.
JWT içerisinde gizli bilgilerin korunması gerekiyorsa yalnızca Base64 encoding'e güvenilmemeli; kullanılan JWT yapısına göre imzalama veya şifreleme mekanizmaları değerlendirilmelidir.
Özet
Base64 bir encoding yöntemidir, encryption değildir. Temel amacı binary verileri metin tabanlı sistemlerde taşınabilir hâle getirmektir. Bu nedenle Base64 ile kodlanmış bir veri güvenli veya gizli kabul edilmemelidir.