Metni standart bir Base64 dizgesine dönüştürün veya geçerli Base64'i geri metne dönüştürün. Araç, API, JSON, yapılandırmalar, HTML ve loglarla çalışırken küçük parçalar için uygundur. Base64, ikili verileri metin karakterleriyle temsil etmek içindir, onları korumak için değil.
Base64 ne yapar
Bilgisayar metinleri ve dosyaları bayt dizileri olarak saklar. Her aktarım kanalı keyfi baytlarla rahatça çalışmaz, bu nedenle Base64 bunları sınırlı bir yazdırılabilir ASCII karakter kümesine dönüştürür.
Standart alfabede şunlar kullanılır:
- Latin harfleri
A–Zvea–z; - rakamlar
0–9; +ve/sembolleri;- gerekli olduğunda sona eklenen
=işareti.
Örnek:
Orijinal metin: Türkiye
Base64: VMO8cmtpeWU=
Bu dizgenin kodunun çözülmesi, orijinal bayt dizisini döndürür ve araç bunu metin olarak göstermeye çalışır.
Base64 şifreleme değildir
Kodlanmış bir dizgenin kodunu herhangi bir kişi veya program çözebilir. Base64'in gizli anahtarı, parolası veya erişim kısıtlama mekanizması yoktur.
Bu nedenle Base64 aşağıdakileri korumak için kullanılamaz:
- parolalar;
- API anahtarları ve tokenlar;
- kişisel veriler;
- özel belgeler;
- ödeme bilgileri;
- yapılandırma sırları.
Kodlama, verilerin temsilini değiştirir ancak onları gizli yapmaz. «Base64 şifresini çözmek» teknik olarak yanlıştır: doğrusu «kodunu çözmek»tir.
Base64 verileri sıkıştırmaz
Her üç orijinal bayt genellikle dört Base64 karakterine dönüşür. Sonucun satır sonları hariç tam boyutu şu şekilde tahmin edilebilir:
4 × ceil(orijinal bayt sayısı / 3)
Yeterince büyük veriler için hacim yaklaşık üçte bir oranında artar. Kısa dizgilerde göreli artış, yuvarlama ve = işaretleri nedeniyle daha büyük olabilir.
Base64 yerden tasarruf etmek için değil, verilerin metin formatı üzerinden güvenle iletilmesi gerektiğinde kullanılır. Boyut önemliyse, önce uygun bir sıkıştırma kullanılır ve ardından Base64 – yalnızca taşıma gerçekten gerektirdiğinde.
Metin kodlaması neden önemlidir
Base64 baytları kodlar, soyut harfleri değil. Kodlamadan önce metin baytlara dönüştürülmelidir, çoğunlukla UTF-8 ile.
UTF-8, UTF-16 veya başka bir kodlamadaki aynı dize farklı Base64 sonuçları verir. Kod çözme sırasında baytlar da doğru kodlamada okunmalıdır. Türkçe harfler yerine okunaksız karakterler görünüyorsa, olası neden bir kodlama uyuşmazlığıdır, Base64 algoritması hatası değil.
Base64url ile normal Base64 arasındaki fark
URL'lerde, çerezlerde ve bazı tokenlarda +, / ve = sembolleri sorun yaratabilir. Bu nedenle RFC 4648, URL güvenli bir varyant tanımlar: Base64url.
| Standart Base64 | Base64url |
|---|---|
+ |
- |
/ |
_ |
= doldurması genellikle korunur |
uzunluğu biliniyorsa doldurma genellikle atlanır |
Bunlar farklı alfabe varyantlarıdır. Bir Base64url dizgesi her zaman hazırlıksız olarak standart Base64 kod çözücüye verilemez. Gerekirse semboller değiştirilir ve eksik doldurma dördün katı uzunluğa tamamlanır.
JWT segmentleri genellikle standart Base64 ile değil, Base64url ile temsil edilir. Kodlarının çözülmesi, başlık ve yük içeriğinin okunmasını sağlar, ancak tokenin gerçekliğini onaylamaz: bunun için kriptografik imza kontrol edilmelidir.
Base64 gerçekte nerede kullanılır
Metin tabanlı API'ler ve veri formatları
Bazı arayüzler, ikili verileri veya özel dizgeleri JSON, XML veya başka bir metin mesajının içine yerleştirmeyi gerektirir. Base64, baytların taşıma kontrol karakterleriyle çakışmadan iletilmesini sağlar.
MIME ve e-posta
Base64, MIME iletilerinde ekleri ve içeriği temsil etmek için kullanılabilir. Belirli bir e-postanın formatı ayrıca başlıklar ve satır sonu kuralları içerir, bu nedenle tek bir Base64 dizgesi tam bir e-posta oluşturmak için yeterli değildir.
Data URL
Küçük bir kaynak HTML veya CSS'ye gömülebilir:
data:image/png;base64,iVBORw0KGgo...
Base64'ten önce MIME türü belirtilir. Gömmek metin boyutunu artırır ve kaynağı normal ayrı önbelleklemeden mahrum bırakır, bu nedenle tüm dosyalar için uygun değildir.
HTTP Temel Kimlik Doğrulaması
Basic Auth başlığında kullanıcı adı ve parola birleştirilir ve Base64 ile kodlanır. Bu, kimlik bilgilerini tek başına korumaz; iletim güvenliği HTTPS'e bağlıdır.
Loglar ve hata ayıklama
Kod çözme, bir API yanıtından, logdan veya yapılandırmadan küçük bir parçanın içeriğini anlamaya yardımcı olur. Ancak üretim sırları veya kişisel veriler üçüncü taraf çevrimiçi araçlara eklenmemelidir.
Bir dizge neden kod çözmüyor
En sık karşılaşılan nedenler:
- dizge kesilmiş;
- Base64url sembolleri
-ve_kullanılıyor, ancak kod çözücü+ve/bekliyor; - gerekli
=doldurma işaretleri eksik; - içinde boşluklar, satır sonları veya yabancı karakterler var;
- Data URL öneki verilerle birlikte kopyalanmış;
- orijinal baytlar metin değil;
- kod çözme sonrası yanlış metin kodlaması uygulanıyor.
Kod çözücülerin katı davranışları farklılık gösterir: bazıları boşlukları yok sayar veya doldurmayı geri yükler, diğerleri dizgeyi reddeder. Entegrasyon için kullandığınız kütüphanenin ve protokolün gereksinimlerine bakın.
Metin ve dosyalar farklı görevlerdir
Bu araç metin için tasarlanmıştır. Her dosya teknik olarak Base64 ile temsil edilebilse de, büyük bir resim, arşiv veya belge için bir dosya kodlayıcı veya yazılım kütüphanesi kullanmak daha pratiktir. Keyfi ikili baytları metin olarak açmaya çalışmak okunaksız sonuçlara veya kopyalama sırasında veri kaybına neden olabilir.
Çevrimiçi dönüştürücü kullanırken güvenlik
Gerçek parolaları, özel anahtarları, erişim tokenlarını, yetkilendirme çerezlerini, kişisel verileri ve gizli belgeleri eklemeyin. İşlemin tarayıcıda yapıldığı belirtilse bile, gizli veriler için yerel araçlar kullanmak ve değerleri test örnekleriyle değiştirmek güvenli uygulamadır.
Sık sorulan sorular
Base64'ten orijinal metin geri alınabilir mi?
Evet, eğer dize bozulmamışsa, doğru Base64 varyantı kullanılmışsa ve orijinal baytlar gerçekten bilinen bir kodlamada metni temsil ediyorsa.
Sonunda neden bir veya iki = işareti var?
Bu, son grubu gerekli uzunluğa hizalayan doldurmadır. Orijinal metnin parçası değildir.
Aynı metin için neden iki program farklı dizgeler veriyor?
Farklı metin kodlamaları, Base64 veya Base64url kullanmış olabilirler, BOM içerebilirler veya sondaki satır sonunu farklı işlemiş olabilirler.
Parola Base64'te saklanabilir mi?
Hayır. Base64 kolayca tersine çevrilebilir ve parolaların güvenli saklanması için tasarlanmamıştır. Sunucuda parolaları saklamak için salt ve uygun maliyet parametreleriyle özel parola hash algoritmaları kullanılır.
Kod çözülmüş bir JWT, tokenin gerçek olduğu anlamına mı gelir?
Hayır. Kod çözme yalnızca verileri gösterir. Gerçeklik ve bütünlük, sistem kurallarına göre imzanın ayrıca doğrulanmasıyla teyit edilir.
İlgili araçlar: Parola üreteci; Metin işleyici; Diffchecker.
Resmi standart:
- RFC 4648 — Base-N Encodings: https://www.rfc-editor.org/rfc/rfc4648
