logo
GeekFormat

Base64 Kodlama

Giriş Metni
0 karakter

Ücretsiz çevrimiçi Base64 kodlama ve çözme aracı. Üç varyant ile UTF-8/ASCII/ISO-8859-1 karakter kümelerini destekler: Standard, URL-Safe ve MIME. Gerçek zamanlı veri büyüme oranını gösterir, MIME satır kırma RFC 2045 standardına uygundur.

İlgili Öneriler

Kullanım senaryoları

  • JWT hata ayıklama: token talep içeriğini görüntülemek için JWT'nin başlık ve yük segmentlerini (Base64URL biçimi) çözün
  • Basic Auth: kullanıcı adı:şifre bilgisini HTTP Basic kimlik doğrulama kimlik bilgileri olarak kodlayın
  • OAuth geliştirme: PKCE senaryolarında code_verifier oluşturun veya code_challenge'ı doğrulayın
  • API hata ayıklama: JSON verilerini kodlayın veya API'ler tarafından döndürülen Base64 alanlarını çözün
  • Data URI görüntü gömme: CSS/HTML'e gömmek için küçük simgeleri data:image/...;base64,... biçimine dönüştürün
  • E-posta eki kodlama: ikili e-posta eklerini MIME Base64 biçiminde kodlayın

Özellikler

  • Tek tıkla Encode/Decode geçişi: kodlama ve çözme modları arasında serbestçe geçiş yapın, çıktı döngüsel işlemeyi desteklemek için doğrudan girdi haline gelir
  • Üç karakter seti desteği: UTF-8 (Çince/Japonca/emoji), ASCII, ISO-8859-1, birden fazla senaryonun profesyonel kapsamı
  • Çıktı için üç varyant: Standard (standart), URL-Safe (JWT/OAuth/PKCE için güvenli), MIME (76 karakter satır kırma ile RFC 2045 standardı)
  • Gerçek zamanlı hacim istatistikleri: gerçek zamanlı olarak girdi/çıktı karakter sayısını ve büyüme oranını gösterir (Base64 hacmi yaklaşık %33 artırır)
  • Net hata mesajları: karakterler aralık dışında olduğunda, basit hata yerine belirli hata mesajları görüntülenir
  • Sürüklenebilir ayırıcı: bilgisayarda mevcut göreve odaklanmak için sol ve sağ düzenleme alanlarının oranı ayarlanabilir
  • Mobil için bağımsız sekmeler: telefon/tablet kullanıcıları pürüzsüz bir deneyim için girdi ve çıktı alanları arasında bağımsız olarak geçiş yapar

Nasıl Kullanılır

  1. Mod seçin: işlem yönünü değiştirmek için Encode (kodla) veya Decode (çöz) seçeneğine tıklayın
  2. Varyant seçin: Standard (standart), URL-Safe (JWT/OAuth), MIME (76 karakter satır kırma ile e-posta biçimi)
  3. İçerik girin: metni veya Base64 dizesini yapıştırın, gerçek zamanlı olarak otomatik olarak işlenecektir
  4. İstatistikleri görüntüleyin: altta karakter sayısı ve hacim büyüme oranı gösterilir (kodlama hacmi yaklaşık %33 artırır)
  5. Sonucu kopyalayın: Base64 dizesini veya çözülmüş metni tek tıkla kopyalayın

Sık Sorulan Sorular

Base64 kodlama şifreleme ile aynı şey midir?

Hayır. Base64 sadece metni başka bir tersine çevrilebilir temsil biçimine dönüştürür; herkes onu orijinal metne geri çözebilir. Hassas veriler (şifreler, tokenlar) söz konusuysa, AES gibi gerçek bir şifreleme şeması kullanın. Base64 yalnızca veri biçimi dönüşümü için uygundur, ikili verilerin metin sistemleri üzerinden iletilmesini kolaylaştırır.

AES şifreleme aracı

Base64 kodlamadan sonra veriler ne kadar büyür?

Base64 kodlama, orijinal veri hacmini yaklaşık %33 oranında artırır. Bunun nedeni, her 3 baytın (24 bit) 4 Base64 karakterine kodlanmasıdır. Örneğin, 100 baytlık metin kodlandıktan sonra yaklaşık 133 bayt olacaktır. Veri boyutunu tahmin edebilmeniz için büyüme oranı aracın alt kısmında gerçek zamanlı olarak gösterilir. Örnek: `Hello` → `SGVsbG8=` (hacim +%33).

Base64 istatistik aracı

Standard, URL-Safe ve MIME olmak üzere üç varyant arasındaki fark nedir?

Standard, A-Z, a-z, 0-9, +, / karakterlerini kullanan standart Base64'tür. URL-Safe +/'yi -_ ile değiştirir, bu da onu URL parametreleri ve JWT tokenları için uygun hale getirir. MIME her 76 karakterde satır sonu ekler, RFC 2045 e-posta standardına uygundur, e-posta ekleri ve çok satırlı metinler için uygundur.

URL-Safe Base64MIME Base64

Bir JWT'nin başlığını veya yükünü nasıl çözerim?

JWT, Base64URL kodlaması (URL-Safe varyantı) kullanır. URL-Safe modunu seçtikten sonra, çözmek için JWT'nin ilk segmentini (başlık) veya ikinci segmentini (yük) yapıştırmanız yeterlidir. Not: JWT'nin üçüncü segmenti imzadır ve burada çözülmemeli veya doğrulanmamalıdır.

JWT aracı

Base64'te Padding (dolgu) nedir?

Base64 kodlama sonucunun uzunluğu 4'ün katı olmalıdır. Giriş uzunluğu 3'ün katı olmadığında, son = karakteri ile doldurulur. URL-Safe varyantı padding kullanmaz. Araç, padding'i otomatik olarak işler ve çözerken = karakterlerini otomatik olarak kaldırır.

Base64 Padding aracı

JavaScript'teki btoa ve atob neden Çince desteklemiyor?

btoa ve atob, her karakterin 1 bayt kapladığı Latin-1 (ISO-8859-1) karakter setiyle çalışan tarayıcının yerel API'leridir. Çince karakterler UTF-8'de 3 bayt kaplar, bu nedenle doğrudan giriş hataya neden olur. Çözüm, önce Çinceyi %xx UTF-8 bayt dizisi desenine dönüştürmek için encodeURIComponent kullanmak, ardından Latin-1 dizesine dönüştürmek için unescape kullanmak ve son olarak kodlamak için btoa kullanmaktır.

Data URI Scheme nedir? Base64 ile görüntüler nasıl gömülür?

Data URI, küçük dosyaları doğrudan bir URL'ye gömmenizi sağlayan bir URI biçimidir, sözdizimi: `data:[<mediatype>][;base64],<data>`. Örneğin: `data:image/png;base64,iVBORw0KGgo...`. Genellikle HTTP isteklerini azaltmak için küçük simgeleri, CSS arka plan görüntülerini vb. gömmek için kullanılır. Ancak Base64 hacmi %33 artırdığından yalnızca küçük dosyalar için uygundur; büyük dosyalar normal URL'ler kullanmalıdır.

Data URI aracıBase64'ten görüntüye

Base64 kodlama nedir?

Base64, ilk olarak RFC 2045 (MIME standardı) tarafından tanımlanan, 64 yazdırılabilir ASCII karakterine dayalı bir ikili veriyi metne kodlama şemasıdır. Base64, her 3 baytı (24 bit) 4 Base64 karakterine (A-Z, a-z, 0-9, +, /) dönüştürerek ikili verilerin HTTP başlıkları, JSON yükleri, XML belgeleri veya URL sorgu parametreleri gibi yalnızca metin destekleyen sistemler üzerinden güvenli bir şekilde iletilmesini sağlar.

**Base64 şifreleme değildir**, yalnızca veri biçimi dönüşümü sağlar, herkes bunu kolayca çözebilir. Hassas verileri korumanız gerekiyorsa, AES gibi gerçek bir şifreleme şeması kullanın. Base64'ün tipik kullanım alanları şunlardır: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), JWT token başlık ve yük segmentleri (Base64URL biçimi), Data URI (`data:image/png;base64,...`), e-posta eklerinin MIME kodlaması vb.

**URL-Safe Base64** (RFC 4648 §5), standart Base64'ün +/'sini -_ ile değiştirir ve genellikle padding ='i atlar. Bu, kodlama sonucunun URL'lerde, dosya yollarında veya JSON alanlarında güvenli bir şekilde görünmesini sağlar. JWT tokenları, OAuth PKCE code_verifier ve AWS Signature V4'ün tümü URL-Safe Base64 kodlaması kullanır.

**MIME satır kırma**, her satırın 76 karakteri geçmemesi gerektiğini belirleyen RFC 2045 standardıdır. Base64 içeriği e-postada veya satır kırma gerektiren belirli senaryolarda kullanıldığında, MIME varyantı her 76 karakterde otomatik olarak satır sonu karakterleri (`\n`) ekler. Bu, e-posta eklerinin iletimi için standart formattır.

Araç, Çince, Japonca ve emoji gibi çok baytlı karakterlerin doğru şekilde kodlanmasını sağlamak için güvenli UTF-8 işleme mantığıyla birlikte tarayıcının yerel **btoa/atob API'lerini** kullanır. Tüm hesaplamalar yerel olarak yapılır, veriler hiçbir sunucuya gönderilmez. Tüm işlem boyunca hiçbir dış istek olmadığını doğrulamak için tarayıcı geliştirici araçlarındaki ağ panelini açın.

术语表

RFC 4648
IETF tarafından yayınlanan Base16/Base32/Base64 kodlamasının resmi standardı. İki alfabeyi tanımlar: standart Base64 ve URL-Safe Base64, ayrıca padding, satır kırma, alfabe dışı karakter işleme vb. kurallar. Önceki RFC 3548'in yerini alan Base64 kodlamasının fiili geçerli standardıdır.URL-Safe Base64 aracıBase64 Padding aracı
RFC 2045 (MIME)
Çok Amaçlı İnternet Posta Uzantıları (MIME) standardı. Base64'ü ilk olarak posta içeriği iletimi için bir kodlama yöntemi olarak uyguladı. Base64 kodlamasının satır başına 76 karakteri geçmemesi gerektiğini ve CRLF ile ayrılması gerektiğini belirler, MIME Base64 varyantı olarak bilinir.MIME Base64 aracı
Base64URL (URL-Safe Base64)
RFC 4648 §5'te tanımlanan URL güvenli varyant. Standart Base64'ün +'sini - ile ve /'yi _ ile değiştirir ve genellikle padding karakteri ='i atlar. JWT tokenları, OAuth PKCE, URL parametreleri ve dosya adları gibi senaryolarda yaygın olarak kullanılır.URL-Safe Base64 aracıJWT aracı
MIME Base64
Her 76 karakterde bir satır sonu karakteri (CRLF) ekleyen RFC 2045 standardına uygun Base64 varyantı. Esas olarak e-posta eklerinin iletimi için kullanılır, çünkü erken SMTP protokollerinin tek satır uzunluğu konusunda sınırlamaları vardı.MIME Base64 aracı
Padding (dolgu)
Base64 kodlama sonucunun uzunluğu 4'ün katı olmalıdır. Giriş bayt sayısı 3'ün katı olmadığında, son = karakteri ile doldurulur. Standart Base64 padding kullanır, Base64URL genellikle onu atlar.Base64 Padding aracı
Base64 alfabesi
Base64 kodlamasında kullanılan 64 karakterlik set. Standart Base64 alfabesi: A-Z (26), a-z (26), 0-9 (10), +, /, toplam 64 karakter, artı dolgu karakteri =.
btoa / atob
Base64 kodlama/çözme için tarayıcının yerel API'leri. btoa (binary to ASCII) kodlama için kullanılır, atob (ASCII to binary) çözme için kullanılır. Not: bu API'ler yalnızca Latin-1 karakter setini destekler. Çince işleme için UTF-8 yeniden kodlama ile birleştirilmelidirler.
Data URI Scheme
Küçük dosyaları doğrudan bir URL'ye gömmenizi sağlayan bir URI biçimi, biçim: data:[<mediatype>][;base64],<data>. HTTP isteklerini azaltmak için genellikle küçük simgeleri ve CSS arka plan görüntülerini gömmek için kullanılır.Data URI aracıBase64'ten görüntüye
HTTP Basic Authentication
HTTP protokolünde bir kimlik doğrulama yöntemi. Kullanıcı adı ve şifre iki nokta üst üste ile birleştirilir, Base64 ile kodlanır ve isteğin Authorization başlığında gönderilir. Biçim: Authorization: Basic <base64(kullanıcı adı:şifre)>.Auth başlık oluşturucu
Base64 büyüme oranı
Base64 kodlamadan sonra veri hacmindeki artış oranı. Her 3 bayt (24 bit) 4 Base64 karakterine kodlandığından, hacim yaklaşık %33 oranında artar (4/3 ≈ 1,333). Padding ile büyüme oranı biraz daha yüksektir.

Üç Base64 varyantının karşılaştırması

ÖzellikStandardURL-SafeMIME
Özel karakterler+ /- _+ /
Padding(=)KullanılırGenellikle atlanırKullanılır
Satır kırmaYokYokHer 76 karakterde satır
StandartRFC 4648 §4RFC 4648 §5RFC 2045
Tipik senaryolarData URI, genel kodlamaJWT, URL parametreleri, dosya adlarıE-posta ekleri, SMTP iletimi

Base serisi kodlamaların karşılaştırma tablosu

KodlamaKarakter sayısıKarakter seti özellikleriVeri büyümesiTipik kullanım
Base16 (Hex)160-9, A-F100%Hata ayıklama, karma görüntüleme
Base3232A-Z, 2-7(karışıklık olmayan büyük harfler)60%DNS, TOTP anahtarları, QR kodları
Base5858Kolay karıştırılan 0/O/I/l karakterlerini hariç tutar38%Bitcoin adresleri, kripto para
Base6262A-Z, a-z, 0-934%URL kısaltıcılar, ID kodlama
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT(URL-Safe varyantı)

Code Examples

JavaScript Base64 kodlama (Çince UTF-8 destekler)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
  return btoa(unescape(encodeURIComponent(str)))
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
}

console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界

Python Base64 kodlama

import base64

# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)

Java Base64 kodlama

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

public class Base64Example {
    public static void main(String[] args) {
        String text = "Hello 世界";

        // Standard 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References