Base64 Nedir?

Base64, 8 bit olmayan verilerin, özellikle internet üzerinde iletilmesi veya depolanması sırasında kullanılan bir kodlama yöntemidir. Bu yöntem, 8 bit karakterlerin ASCII karakter kümesinde olmadığı durumlarda kullanılır.

Base64, 64 karakterden oluşan bir karakter kümesi kullanır ve bu karakter kümesi, genellikle A-Z, a-z, 0-9, + ve / karakterlerini içerir. Base64 algoritması, verileri 6 bit bloklar halinde bölerek bu karakter kümesindeki karşılıklarına dönüştürür.

Base64 Kullanım Yerleri Nerelerdir?

Base64 sıklıkla, e-posta sistemlerinde veya verilerin URL'de geçirilmesinde kullanılır. E-posta sistemleri, 8 bit olmayan karakterleri desteklemezler, bu nedenle bu karakterler Base64 ile kodlanarak e-posta mesajlarına eklenir. URL'lerde ise bazı karakterler özel anlamlar taşıdığından, bu karakterlerin kullanımı sınırlıdır. Bu nedenle, URL'lerde Base64 kodlama kullanarak, özellikle veri transferi yapılırken, özel karakterlerin yerine geçebilecek alternatif karakterler kullanılır.

Base64 ayrıca, dijital imzalama ve kimlik doğrulama gibi alanlarda da kullanılır. Örneğin, bir kullanıcının kimlik bilgileri Base64 ile kodlanabilir ve bu bilgiler, daha sonra veritabanında saklanabilir. Dijital imzalama işlemlerinde ise, imzalanan veriler Base64 ile kodlanarak imza algoritmasında kullanılır.

Base64, özellikle internet üzerinde veri aktarımında kullanılan bir kodlama algoritmasıdır. Bu algoritma, verileri 64 karakterden oluşan bir kümedeki karakterlere dönüştürür.

Base64'ün çalışma mantığı şu şekildedir

Veri, öncelikle 8 bitlik veri bloklarına bölünür.

Her 8 bitlik veri bloğu, 6 bitlik iki alt bloğa bölünür.

Bu alt bloklar, 64 karakterden oluşan bir tablodaki karşılık gelen karakterlerle değiştirilir.

İlk alt blok, tablodaki ilgili karakterin indeksine denk gelirken, ikinci alt blok bir sonraki karakterin indeksine denk gelir.

Bu işlem, verinin sonuna kadar devam eder.

İşlemin sonunda, veri kümesindeki tüm karakterler birleştirilerek kodlanmış veri elde edilir.

Base64 algoritması, özellikle e-posta sistemlerinde ve verilerin URL'de geçirilmesinde kullanılır. Bu algoritma, verileri 8 bit sınırlarının ötesinde dönüştürerek, ASCII karakter setindeki tüm karakterlerin kullanılmasına olanak sağlar. Bu sayede, verilerin güvenli bir şekilde aktarımı mümkün hale gelir.

Base64 İle Kodlama Örnekleri

Base64 algoritması, verileri ASCII karakter kümesindeki 64 farklı karakterle kodlama ve işaretleme yöntemidir. İşte Base64 kodlaması ile ilgili örnekler:

1. Örnek Metin: "Merhaba, dünya!"

Base64 Kodu: "TWVyaGFiYSwgZMO8bndhIQ=="

2. Örnek Metin: "Bu bir testtir."

Base64 Kodu: "QnUgaW4gdGVzdHRpci4="

3. Örnek Metin: "1234567890"

Base64 Kodu: "MTIzNDU2Nzg5MA=="

4. Örnek Metin: "Base64 kodlaması, verileri iletim için uygun hale getirir."

Base64 Kodu:
"QmFzZTY0IGtvZGxhbWFzYSwgdmVyaWxlcmkga
WxldGltIGZpbiB1eWd1biBoYWxlIGdldGlyaXIu"

Base 64 phyton örnek kodu

import base64

# Orjinal veri

data = b'Hello, world!'

# Veriyi base64 ile kodla

encoded_data = base64.b64encode(data)

print(encoded_data)  # b'SGVsbG8sIHdvcmxkIQ==\n'

# Base64 kodlanmış veriyi çöz

decoded_data = base64.b64decode(encoded_data)

print(decoded_data)  # b'Hello, world!'

Yukarıdaki kod aşağıdaki çıktıyı verecektir.

b'SGVsbG8sIHdvcmxkIQ=='

b'Hello, world!'

** Process exited - Return Code: 0 **

Press Enter to exit terminal

Yukarıdaki örnekte, öncelikle base64 modülü import edilir. Daha sonra, kodlamak istediğimiz veri olarak "Hello, world!" belirlenir ve b64encode() fonksiyonu kullanılarak base64 ile kodlanır. Kodlanmış veri encoded_data değişkenine atanır ve ekrana yazdırılır. Son olarak, b64decode() fonksiyonu kullanılarak kodlanmış veri decoded_data değişkenine atanır ve ekrana yazdırılır.

Base64 kodlama, özellikle veri transferi ve depolama gibi durumlarda yaygın olarak kullanılır. Örneğin, e-posta adresleri ve şifreler gibi duyarlı verilerin güvenli bir şekilde depolanması veya internet üzerinden transfer edilmesi gerektiğinde base64 kullanılabilir. Ayrıca, çeşitli dosya türleri, özellikle görüntü, video ve ses dosyaları için de base64 kodlaması yaygın olarak kullanılır.