Binary verileri karakter dizilerine döndüren kodlama şeklidir. Başta http olmak üzere email metinleri de bu kodlama ile kodlanarak karşı tarafa iletilirler. Başlangıçta PEM - Privacy-enhanced Electronic Mail olarak adlanrılmasına rağmen zamanla Base64 adını almıştır. Günümüzde web tabanlı otomasyonlarda resim benzeri medyalar Base64 kullanılarak kodlanır ve o şekilde saklanırlar. Temel çalışma mantığı 8 bitlik verilerin 6 bitlik karakter cetveline dönüştürülmesidir. ASCII karakterlerin kodlanması için 7bit=128 karakter kullanılırken Base64 de 6 bit kullanılır. Sayılar, büyük harfler ve küçük harflerden oluşan dönüşüm tablosu mevcuttur. Bunun yanısıra + ve - karakterleri de tabloya eklenir.
Base64 dönüşüm tablosu |
Programlama esnasında bu tablo;
char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
olarak tanımlanabilir. Peki alınan veriler nasıl kodlanır. Diyelim ki sayısal olarak üç tane veri alınmış olsun; 155, 162 ve 233. Bu sayıların 8 bitlik binary karşılıkları aşağıdaki gibidir;
155 -> 10011011 162 -> 10100010 233 -> 11101001
Şimdi bu binary rakamları yanyana ekleyelim;
100110111010001011101001
elimizde 24 bitlik bit karakter dizisi oluşmuş oldu. Base64 de 64 karakter olduğu için 6 bitlik sayılarla ifade edilebilirler. Dolayısı ile yukarıdaki 24 biti 6şar bitlik verilere bölceğiz;
100110 -> 38 111010 -> 58 001011 -> 11 101001 -> 41
Bölme işleminden sonra her bir 6 biti tekrar 10 luk tabana çevirelim. Elde ettiğimiz rakamlar Base64 dönüşüm tablosundan alınacak;
38 -> m 58 -> 6 11 -> L 41 -> p
bu şekilde sayısal kodlama tamamlanacaktır. Base64 dönüşümünde eğer 6 bitlik bölümlerde sayısal veri yetmiyorsa sonu 0 ile doldurulur. Son karakter 0 ile bitiyorsa 65. karakter olarak = işareti eklenir.
Hiç yorum yok:
Yorum Gönder