Base64 bir encoding tekniğidir ve çalışma prensibi, binary verileri metinsel bir biçime dönüştürerek iletimini ya da saklanmasını sağlamaktır. Amaç ise 8 bitlik verinin 6 bitlik parçalara ayrılması ve 26=64 sayının (0 ile 63 arası sayılar) ASCII karakterleri ile eşleştirilmesidir. Bu işleme de Base64 Encoding adı verilir.
İlgili yazılar:
bkz: Java'da bir karakterin ASCII kodunu bulmak
bkz: Python'da Karakterlerin ASCII Kodlarını Bulmak (ord Metodu)
Excel ile hazırladığım base64 index tablosunu aşağıda paylaşıyorum.
Base64 encoding işleminde karakter sütunlarından da görülebileceği gibi alfabetik karakterlerin küçük ya da büyük harf olmaları değişiklik göstermektedir ve birbirleri yerine kullanılamazlar.
Base64 kodlamasında encode edilecek verinin bite sayısının 3'e kalansız olarak bölünebiliyor olması gerekir, 3'e tam olarak bölünmeyen verilerde ise padding işlemi yapılır. Padding işleminde kalan byte değerleri, encode edildikten sonra = ya da == olarak en sona eklenirler.
Base64 Encode ve Base64 Decode işlemleri için bu amaçla hazırlanmış çok sayıda ücretsiz araç bulunmaktadır. Örneğin bir uygulamada Base64 olarak encode edilmiş verilerinizi decode etmek, ya da bir amaçla encode etmek isterseniz bu ücretsiz araçları kullanabilirsiniz.
Base64 Encoder Örneği:
base64encode.org
merhaba = bWVyaGFiYQ==
Base64 Decoder Örneği:
base64decode.org
Şimdi de encode ettiğimiz veriyi decode edelim.
Son not: bu örneklerden de görebileceğiniz gibi encoding ile encryption çok farklı tekniklerdir. Base64 tekniği ile encode edilen bir veri kolaylıkla decode edilebilir, şifreleme konularında da yazılar paylaşarak ilerleyen günlerde örnekli içerikler hazırlamayı umuyorum.
Edit: Faydalı bir kullanım örneği için bkz: FileZilla'daki Kayıtlı Şifre Nasıl Öğrenilir?