Base64, düz metin karakterlerinden daha fazlasını içeren verilerin rasgele ikili verileri, daha sonra bir bilgisayar ağında aktarılabilecek düz metin mesajına dönüştürmek için bir yöntemdir. Buna kodlama denir. Base64 ile kodlanmış bir mesajın çıktısı bir insanın kolayca anlayabileceği bir şey olmasa da, yine de özel amaçlar için kullanılan 65. karakterle birlikte, adın geldiği 64 ortak İngilizce karakterinden oluşur.
Base64'ün ardındaki fikir, e-posta gibi ağ bağlantılı iletişimler yoluyla basit metin karakterlerinden daha fazlasını elde etmek için bir ihtiyaç olarak ortaya çıktı. İlk e-posta mesajları, İngilizce alfabe karakterlerini ekranlarda veya yazıcılarda metin olarak göstermek için kullanılan bilgisayarlarda kullanılan kodlama yöntemi olan Amerikan Bilgi Değişimi Kodunda (ASCII) kodlanmış karakterler olarak başladı. Başarabilmek için ek ikili bilgi gerektiğinden, yeni kodlama şemaları geliştirilmiştir.
Base64 kodlama yöntemi ilk olarak Çok Amaçlı İnternet Posta Uzantıları (MIME) standardı olarak bilinen şeyde açıklanmıştır. MIME standardı, İngilizce olmayan diller tarafından kullanılan alfabe gibi diğer rastgele ikili veriler gibi ASCII kodlu olmayan diğer karakterlerin de ASCII dizilerine kodlanıp e-posta mesajları aracılığıyla iletilebildiği yöntemlerle tanımlanmıştır. MIME standardı tarafından açıklanan iki birincil kodlama yönteminden base64, yazdırılabilir olarak bilinen başka bir rol oynar. Alınan basılabilir yöntem ASCII'yi sınırlı 94 basılabilir karakterinin ötesinde biraz uzatabilirken, base64 herhangi bir bayt dizisini alabilir ve bir ASCII dizisine dönüştürebilir.
Base64, ASCII standardını başka şekilde karşılamayan ve bunları ASCII'ye dönüştürmeyen veri dizilerini almak zorundadır. Bunu yapmak için, kodlama yöntemi, verileri üç baytlık gruplara toplama ve bunları karşılık gelen ASCII karakterlerini temsil eden dört sayıya dönüştürme işlemidir. Bir bayt sekiz bit olduğundan, her bitin bir veya sıfır ile temsil edildiği, üç bayt uçtan uca bağlanır ve tüm sekans 24 bitlik bir tampona gider. 24 olanlar ve sıfırlar daha sonra altı bitlik dört gruba ayrılır, burada her birine bir ASCII karakteriyle eşleşen numaralar atanır.
Base64 herhangi bir ikili veriyi kodlayabildiğinden, herhangi bir byte dizisi işlemden geçebilir. Bununla birlikte, kodlama için bayt sayısının üçe bölünemediği durumlarda bir bit vardır, böylece bitler ara belleğe sığabilir. Bir bayt dizisi dört veya beş bayt içeriyorsa, tamponu doldurmak ve 24 bitin tamamını tamamlamak için hala bir şeye ihtiyaç duyulur. Bu durumlarda, her bir eksik bayt, sekiz 0 ile temsil edilir ve daha sonra bitmiş kodlamada dolgu karakterlerine dönüştürülür. Bu, daha önce bahsedilen 65. karakterin, kodlanmış mesajda eşittir işaretiyle (=) temsil edildiği yerdir; sadece bir dolgu gerekli olduğunda kodlamanın en sonunda ortaya çıkar.
Base64 asıl olarak e-posta mesajları aracılığıyla ikili veri iletmek için tasarlanmasına rağmen, kullanımı MIME dışında diğer birçok alanda devreye girmiştir. Bu tür oldukça yaygın bir kullanım, web veritabanları ve bir web formunda tek tip bir kaynak bulucu (URL) yaratılması için verileri kodlayan uygulamalar içindir. Genişletilebilir işaretleme dili (XML), küçük resimler gibi ikili verilerin XML belgelerine dahil edilmesine izin veren bir değişken de kullanır. Şifreleme yöntemleri ve şifreleri gizleme gibi güvenlikle ilgili diğer teknikler için başka varyasyonlar vardır.


