5 Aralık 2014 Cuma

Base64

Base64 Nedir?
Base64 binary verinin sadece bazı ASCII karakter içerecek şekilde kodlanması anlamına gelir.
Base64 encoding schemes are commonly used when there is a need to encode binary data that needs be stored and transferred over media that are designed to deal with textual data. This is to ensure that the data remains intact without modification during transport.
Binary verinin bazı transfer protokolleri ile kullanırken, kontrol karakteri olarak algılandığı için bozulduğu yazılı. Böyle bir transfer protokolüne örnek veremiyorum.

Hangi Karakterler Vardır
Base64 ile kullanılan ASCII alt kümesi A–Z, a–z, 0–9, +, /, =  karakterleridir. Toplam 64 tane karakter vardır. Yani her karakter 6 bit ile temsil edilebilir.

Bir string'in Base64 olup olmadığını anlamak için [^A-Za-z0-9+/=] düzenli ifadesine başvurulabilir.

Base64 verilen girdiyi daha büyük hale getirir. Yani çok verimli değildir.

Ne Tür Binary Veri İçin Kullanılır?
1. hash sonucu elimize geçen byte[] değeri,
2. MIME eklentileri Base64 string haline çevrilmiş şekilde karşımıza çıkıyor. Örneğin e-posta'da eklenti olarak gönderilen bir gif dosyası Base64 olarak gönderilebilir.
MIME-Version: 1.0
Content-Description: "Base64 encode of a.gif"
Content-Type: image/gif; name="a.gif"
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename="a.gif"
MIME Base64 binary to text çevriminde kullanılabilecek bir standart. Bu standarda göre bir satırın uzunluğu en fazla 76 karakter olabilir.

3. XML içine binary veri eklerken

kullanılabilir.

Veri Neden = Karakteri İle Biter? - Veri 3'ün Katı Olacak Şekilde Tamamlanır
Base64 veriyi 3 byte'lık gruplar halinde okur. Eğer veri 3'ün katı değilse olacak şekilde tamamlanır. Bu durumda çevrimin sonunda genellikle "=" karakteri ile biten string'ler elde ederiz. "=" karakteri Base64 çevrim tablosunda boşluk karakterine denk gelir. Dolayısıyla bir string'e bakıp sonu 2/3 ihtimalle = karakteri ile bitiyorsa, Base64 ile kodeklendiğini tahmin edebiliriz.

Base64 ve URL Safe Çevrim
Bazı Base64 kodekleri URL Safe bir mod sunuyorlar. URL içinde + ve / karakterleri kullanılmaz. Standart Base64 ise bu karakterleri kullanır. URL Safe çevrim yapan kodekler  + ve / karakterleri yerine "_" karakteri kullanır. Örneğin Apache Commons kütüphanesi aşağıdaki gibi kullanılabilir.
base64String = Base64.encodeBase64URLSafeString(myByteArray);
Apache Commons
Base64 Sınıfı kullanılabilir.

Linux
base64 komutu kullanılabilir






Hiç yorum yok:

Yorum Gönder