Base64 Kod Çözme

Base64 Giriş
0 karakter

Base64 dizelerini orijinal metne geri döndüren ücretsiz çevrimiçi Base64 kod çözme aracı. Birden fazla karakter setini destekler ve API inceleme ile log kurtarma için idealdir.

İlgili Öneriler

Base64 kod çözme nedir?

Base64 kod çözme, Base64 kodlamanın tersidir: SGVsbG8= gibi bir Base64 dizesini tekrar orijinal metne veya ikili veriye dönüştürür. Base64, ikili veriyi 64 yazdırılabilir ASCII karakteriyle (A-Z, a-z, 0-9, +, /) temsil eden ve RFC 4648'de tanımlanan bir kodlama yöntemidir.

**Yaygın kullanım alanları:** Base64; HTTP Basic Authentication başlıklarında, JWT token payload segmentlerinde, API yanıt alanlarında, Data URI'lerde (`data:image/png;base64,...` gibi), e-posta eklerinin MIME kodlamasında ve veritabanı BLOB alanlarında yaygın biçimde kullanılır. Bu verileri çözmek geliştirme ve hata ayıklamada sık yapılan bir iştir.

**Kod çözmede kritik adımlar:** Base64 çözerken doğru şekilde ele alınması gerekenler şunlardır: 1) karakter seti (çok baytlı karakterler için UTF-8, saf İngilizce için ASCII), 2) Padding (`=`), çünkü uzunluk 4'ün katı olmalıdır, 3) URL-safe varyantı (`+` ve `/` yerine `-` ve `_`), 4) satır sonları ve boşluklar (standart Base64'te yoktur, MIME varyantı ise her 76 karakterde satır sonu ekler).

**Tarayıcı yerel desteği:** Tarayıcılar Base64 çözme için `atob()` fonksiyonunu sunar, ancak bu fonksiyon yalnızca Latin-1 (ISO-8859-1) destekler. UTF-8 metinleri işlemek için önce `TextDecoder('utf-8')` ile baytları yorumlamak gerekir. Bu araç bunu otomatik olarak yapar.

**Yerel işlem ve gizlilik:** Tüm kod çözme işlemleri tarayıcı içinde yapılır. Girdiğiniz Base64 dizesi herhangi bir sunucuya gönderilmez, bu nedenle API yanıtlarındaki hassas token'ları veya loglardaki kullanıcı verilerini güvenle çözebilirsiniz.

Kullanım senaryoları

  • API'den dönen Base64 alanlarını çözerek orijinal içeriği görmek
  • Log içindeki Base64 verilerini geri yüklemek
  • Yapılandırma dosyalarındaki Base64 değerlerini kurtarmak
  • Eksik padding veya geçersiz karakter gibi Base64 çözme hatalarını incelemek
  • Kullanıcı bilgisini görmek için JWT header ve payload alanlarını çözmek
  • HTTP Basic Authentication bilgilerini çözerek kullanıcı adını ve parolayı görmek
  • Data URI Scheme içindeki görsel veya kaynak verilerini geri yüklemek

Nasıl Kullanılır

  1. Çözmek istediğiniz Base64 dizesini yapıştırın
  2. Karakter setini seçin (UTF-8/ASCII/ISO-8859-1)
  3. Araç Base64'ü otomatik çözer ve sonucu gösterir
  4. Sonucu hata ayıklama veya dokümantasyon için kopyalayın

Özellikler

  • Gerçek zamanlı dönüştürme: giriş yapıldığında 300 ms debounce ile otomatik çözümleme yapılır
  • Birden çok karakter seti desteği: UTF-8, ASCII ve ISO-8859-1 ile Türkçe, İngilizce ve çok dilli senaryolar
  • URL-safe Base64 uyumluluğu: `-` ve `_` dönüşümünü otomatik işler, padding olmayan biçimi de destekler
  • Geçersiz karakter algılama: çözme başarısız olduğunda sorunun konumunu gösterir
  • Tek tıkla kopyalama ve indirme: sonucu panoya kopyalayın veya `.txt` dosyası olarak indirin
  • Otomatik Padding işleme: `=` karakterlerini otomatik ekler veya kaldırır
  • MIME varyantı desteği: her 76 karakterde satır sonu olan MIME Base64 biçimini tanır ve işler

Kod Örnekleri

JavaScript: tarayıcıdaki `atob()` ile çözme (yalnızca Latin-1)

javascript

Tarayıcının yerel API'siyle sade Base64 çözebilirsiniz. UTF-8 için `TextDecoder` gerekir.

// Standard Base64 decode (plain English / Latin-1)
function b64Decode(str) {
  try {
    return atob(str);
  } catch (e) {
    return 'Decode failed: ' + e.message;
  }
}

console.log(b64Decode('SGVsbG8gV29ybGQ=')); // "Hello World"

// UTF-8 decode (recommended)
function b64DecodeUtf8(str) {
  const binary = atob(str);
  const bytes = new Uint8Array(binary.length);
  for (let i = 0; i < binary.length; i++) {
    bytes[i] = binary.charCodeAt(i);
  }
  return new TextDecoder('utf-8').decode(bytes);
}

console.log(b64DecodeUtf8('5LiW55WM')); // UTF-8 text

Python: `base64` kütüphanesiyle çözme (URL-Safe dahil)

python

Python'un standart `base64` kütüphanesi Standard ve URL-Safe modlarını destekler.

import base64

# Standard decode
encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)

# URL-Safe decode
url_encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.urlsafe_b64decode(url_encoded + '=' * (4 - len(url_encoded) % 4))
print(decoded.decode('utf-8'))

# MIME decode (after removing line breaks)
mime_encoded = 'SGVs\nbG8g\nV29y\nbGQ='
decoded = base64.b64decode(mime_encoded.replace('\n', '')).decode('utf-8')
print(decoded)

# Ignore invalid characters automatically
import re
cleaned = re.sub(r'[^A-Za-z0-9+/=]', '', encoded)
decoded = base64.b64decode(cleaned).decode('utf-8')
print(decoded)

Java: `java.util.Base64` ile çözme (farklı varyantlar)

java

Java standart kütüphanesi RFC 4648, URL-Safe ve MIME Base64 için tam destek sunar.

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64DecodeExample {
    public static void main(String[] args) {
        String encoded = "SGVsbG8g5LiW55WM";

        // Standard decode
        byte[] decoded = Base64.getDecoder().decode(encoded);
        System.out.println(new String(decoded, StandardCharsets.UTF_8));

        // URL-Safe decode
        byte[] urlDecoded = Base64.getUrlDecoder().decode(encoded);
        System.out.println(new String(urlDecoded, StandardCharsets.UTF_8));

        // MIME decode (handles line breaks automatically)
        String mime = "SGVs\nbG8g\nV29y\nbGQ=";
        byte[] mimeDecoded = Base64.getMimeDecoder().decode(mime);
        System.out.println(new String(mimeDecoded, StandardCharsets.UTF_8));

        // Error handling
        try {
            Base64.getDecoder().decode("invalid@base64");
        } catch (IllegalArgumentException e) {
            System.err.println("Decode failed: " + e.getMessage());
        }
    }
}

Sık Sorulan Sorular

Base64 çözerken neden InvalidCharacterError alıyorum?

En yaygın nedenler; boşluk, satır sonu veya tırnak gibi geçersiz karakterlerin karışması, yanlış Padding (`=`) sayısı veya URL-safe varyantının (`-/_`) standart Base64 gibi işlenmesidir. Önce giriş dizesini temizleyin.

Çözümleme sonrası bozuk karakterler görürsem ne yapmalıyım?

Büyük olasılıkla yanlış karakter seti seçilmiştir. Çok baytlı metin için UTF-8 seçin. Sadece İngilizce metin veya ikili veri için ASCII ya da ISO-8859-1 deneyebilirsiniz.

URL-safe Base64 çözümü ile normal Base64 çözümü arasındaki fark nedir?

URL-safe Base64, `+` ve `/` yerine `-` ve `_` kullanır ve sonda yer alan `=` padding çoğu zaman atlanır. Çözmeden önce `-/_` değerlerini `+/` haline getirip padding'i tamamlamak gerekir.

Base64 çözme API entegrasyonu hata ayıklaması için uygun mu?

Evet, oldukça uygundur. Birçok API yanıtı, OAuth token'ı, callback parametresi ve middleware log'u veriyi Base64 ile sarar. Çözdüğünüzde orijinal veriyi doğrudan görebilirsiniz.

JWT'nin header veya payload bölümü nasıl çözülür?

JWT, Base64URL (URL-safe varyantı) kullanır. JWT'nin ilk segmentini (header) veya ikinci segmentini (payload) yapıştırıp URL-safe modunu seçin. Üçüncü segment imzadır; normal çözmeyle doğrulanmamalıdır.

Büyük dosyaları da çözebilir mi?

Açık bir boyut sınırı yoktur, ancak çok büyük metinlerde tarayıcı performansı düşebilir. 10 MB üzerindeki Base64 dizeleri sayfayı yavaşlatabilir; bu durumda parça parça çözme veya Node.js / Python betiği kullanmak daha iyidir.

Padding eksikse ne olur?

Araç, uzunluk 4'ün katı olana kadar Padding (`=`) ekler. URL-safe varyantı padding'i sıklıkla atladığı için araç bunu otomatik algılayıp tamamlar.

Base64 çözme bir şifre çözme işlemi midir?

Hayır. Base64 geri döndürülebilir bir kodlamadır, şifreleme değildir. Herkes Base64 çözebilir. Hassas veriler için AES gibi gerçek şifreleme yöntemleri kullanılmalıdır.

Tarayıcıdaki `atob()` ile bu aracın sonucu aynı mı?

Salt İngilizce metin için genelde evet. Ancak `atob()` yalnızca Latin-1 destekler ve UTF-8 çok baytlı metni doğrudan işleyemez. Bu araç, `atob()` ile `TextDecoder` birleşimine denk bir işlem yapar.

Çözme sonucu dışa aktarılabilir mi?

Evet. Sonucu tek tıkla panoya kopyalayabilir veya `.txt` dosyası olarak indirebilirsiniz. İndirilen dosya UTF-8 kodludur ve herhangi bir metin düzenleyici ya da Excel ile açılabilir.

Sözlük

Base64
RFC 4648'de tanımlanan, 64 yazdırılabilir ASCII karakterine dayalı ikili-veriden-metne kodlama yöntemidir. Her 3 bayt 4 karaktere çevrildiği için boyut yaklaşık %33 artar.
atob()
Tarayıcının yerel Base64 çözme fonksiyonu (ASCII to Binary). Yalnızca Latin-1 desteklediğinden UTF-8 için TextDecoder ile birlikte kullanılmalıdır.
Padding
Base64 sonunda yer alan `=` karakterleriyle uzunluğu 4'ün katına tamamlama yöntemidir. Çözme sırasında padding genelde otomatik işlenir. URL-safe varyantı bunu çoğu zaman atlar.
URL-Safe Base64
RFC 4648 §5'te tanımlanan URL güvenli Base64 varyantıdır; `+` ve `/` yerine `-` ve `_` kullanır. JWT ve OAuth PKCE'de yaygındır.
MIME Base64
RFC 2045'e göre her 76 karakterde bir CRLF satır sonu ekleyen Base64 varyantıdır. Başlıca e-posta ekleri için kullanılır.
UTF-8
Değişken uzunluklu Unicode kodlamasıdır. Çok baytlı karakterleri doğru geri yüklemek için Base64 çözümünde UTF-8 seçilmelidir.
InvalidCharacterError
`atob()` fonksiyonunun girişte boşluk, satır sonu veya Base64 dışı karakter bulduğunda verdiği hatadır.
Latin-1 (ISO-8859-1)
Batı Avrupa dilleri için tek baytlı karakter setidir. Tarayıcıdaki `atob` ve `btoa` doğrudan yalnızca bunu destekler.

3 Base64 varyantının karşılaştırması

Çözmeden önce gelen Base64 varyantını tanımlayıp doğru modu seçin; böylece hata veya bozuk çıktı riskini azaltırsınız.

ÖzellikStandardURL-SafeMIME
Özel karakterler+ /- _+ /
Padding (=)KullanılırGenelde atlanırKullanılır
Satır sonuYokYokHer 76 karakterde
StandartRFC 4648 §4RFC 4648 §5RFC 2045
Tipik senaryolarData URI, genel kodlamaJWT, URL parametreleri, dosya adlarıE-posta ekleri, SMTP aktarımı
Çözme notuPadding tamamlanması gerekebilirÖnce -_ ifadesini +/ yapın, sonra çözünÇözmeden önce satır sonlarını kaldırın

Base64 çözümünde sık görülen 5 hata

Çözme hatası alırsanız, aşağıdaki tablo sorunu hızlıca daraltmanıza yardımcı olur.

Hata türüOlası nedenÇözüm
InvalidCharacterErrorBoşluk, satır sonu veya Base64 dışı karakter içeriyorGirdi dizesini temizleyin veya Base64 Clean aracını kullanın
Çözümden sonra bozuk metinYanlış karakter seti seçildi, örneğin UTF-8 metin Latin-1 olarak okunduUTF-8'e geçin
URL parametresinde hataURL-safe karakterler (`-_`) standart Base64 gibi çözüldüÖnce `-_` değerlerini `+/` haline getirin
Yanlış paddingUzunluk 4'ün katı değilUzunluk % 4 = 0 olana kadar `=` ekleyin
Boş dizeGirdi yalnızca boşluk veya satır sonu içeriyorBoşlukları temizleyip yeniden girin

Authoritative References