Base64 kodlaması nedir? Gerçek baytlarla ilk örnek

Base64 amacını anlayın, Merhaba'nın SGVsbG8= haline gelmesine bakın ve kodlama ile şifreleme arasındaki farkı anlayın.

Base64 ikili verileri sıradan metin karakterleriyle temsil etmenin bir yoludur. Bir resim, bir belge veya bir metin parçasının tümü bayt olarak temsil edilebilir. Bir sistem bir metin alanı içinde bu baytlara ihtiyaç duyduğunda, Base64, alıcının daha sonra kodunu çözebileceği, tersine çevrilebilir bir yazım sağlar.

Küçük bir örnek

Metin Hello beş ASCII bayt içerir. Bu baytların kodlanması şunu üretir: SGVsbG8=. Bu değerin kodunun çözülmesi aynı beş baytı döndürür ve bu daha sonra orijinal metin olarak okunabilir. Eşittir işareti kodlamanın son grubuna aittir; Merhaba kelimesinin bir parçası değil.

Text:           Hello
Bytes in Hex:   48 65 6c 6c 6f
Base64:         SGVsbG8=
Decoded bytes:  48 65 6c 6c 6f

Kodlayıcıdaki örneği deneyin, sonucu kod çözücüye kopyalayın ve döndürülen metni karşılaştırın. Daha sonra Çince bir karakter veya emoji deneyin. Metin öncelikle UTF-8 gibi bir karakter kodlaması kullanılarak bayt haline gelmelidir; Base64 kendisi bir dil veya karakter kümesi tanımlamaz.

Nerede karşılaşırsın

Yaygın örnekler arasında JSON içindeki ikili alan, Veri URI içindeki satır içi görüntü ve belirli belirteçlerin okunabilir bölümleri yer alır. Çevreleyen format bağlamı sağlar. Base64 dizesi tek başına size orijinal dosya adını, MIME türünü, karakter kodlamasını veya içeriğin güvenilir olup olmadığını söylemez.

Veri URI aşağıdaki gibi bir önek ekler: data:image/png;base64,. Bu önek yükü açıklar ancak Base64 alfabesinin bir parçası değildir. Bazı kod çözücüler ambalajı anlar; diğerleri yalnızca virgülden sonraki kısmı bekler. Tanıdık olmayan karakterleri rastgele silmek yerine uygun aracı veya modu seçin.

Üç yaygın yanlış anlama

İlk olarak, Base64 şifreleme değildir: kodunu çözmek için herhangi bir sır gerekmez. İkincisi, dosyaları küçültmez; sıradan dolgulu çıktı, orijinal baytlardan kabaca üçte bir daha büyüktür. Üçüncüsü, kodu çözülmüş her sonuç metin değildir. Bir görüntünün kodu, metin kutusunda anlamsız gibi görünen baytlara doğru şekilde çözülebilir.

Kod çözme başarısız olduğunda orijinal kaynağı, seçilen alfabeyi ve dizenin kısaltılıp kısaltılmadığını kontrol edin. Başarılı olduğunda uygun bir görünüm seçin: geçerli metin baytları için metin, inceleme için Hex veya ikili veriler için dosya indirme. Ayrıntılı Base64 alfabesi ve örnekleri şurada tanımlanmıştır: RFC 4648.