Base64 ve Base64url Encoding

KATEGORİ

Hem Base64 hem de Base64url encoding, binary(ikili) veriyi(0,1) ASCII karakter seti içinde temsil edilebilecek bir string formatına dönüştürür. Örneğin bir resime ait binary veri içeriğinin sistemler arasında ASCII karşılığı olacak şekilde (plain-text) transfer edilebilmesi amacıyla kullanılır.

Normalde örneğin bir resmi ifade eden devasa boyutta sıfır ve birlerden oluşan bir binary dosyamız olur. Bu dosya üzerinde Base64 encoding kuralları uygulanır. Ancak örnek olarak elimizde bir kelime olsun. Bu kelimenin Base64 kodlamasını yapalım.

Base64 dönüşümü için öncelikle elimizde olan kelimenin her bir karakterinin ASCII tablosundaki karşılığını buluruz. Sonra da bu karakterlerin 8 bit binary karşılığını buluruz. (ASCII tablosunda 256 kayıt vardır.). Bulduğumuz 8 bitlik karakterleri birleştiririz.

Sonra bu binary karakter dizisini 6 bitlik bloklara böleriz. Son blokta 6’dan az eleman varsa sona sıfırlar eklenir.

Elimizdeki bu 6 bitlik blok listesini altalta sıralarız ve herbirinin decimal karşılıklarını buluruz. (ör: 010000 = 16).

Sonra bu elde ettiğimiz decimal değerlerin her biri için Base64 karakter tablosundaki karşılıkları ile dönüşüm yaparız. (ör: 16 = Q)

https://en.wikipedia.org/wiki/Base64

Base64, +,/,= gibi karakterler içerebilir. Bu durumda örneğin = ifadesi bir URL standart karakteridir ve ‘=’ içeren bir Base64 karakter URL çağrılırken probleme yol açabilir. Burada ‘+’, ‘-‘ ‘ye ’/’, ‘_’ ‘ye ve ‘=’, ‘%”ye dönüşüm işlemleri yapılarak Base64url encode işlemi yapılmış olur.