Base64 Decode ve Encode: PDF, Resim veya Dosyaya Çevirme
Base64 yapıştırın, dosyayı geri alın: PDF, resim, metin ya da JWT. Ya da Base64 kodunu almak için bir dosya bırakın. Her şey bu sekmede olur.
Üç bayt 24 bit eder. Base64 aynı 24 biti altışarlı dört gruba böler ve her grup 64 karakterden birini belirtir. Beyaz çizgiler baytların bittiği yerlerdir: gruplarla örtüşmezler ve bütün hile de budur.
16 + 2 + 1 = 19 T
Standart alfabedeki indeksi: 19.
Base64 decode ve encode aracı nasıl kullanılır?
Tek alana her şeyi yapıştırın (metin, Base64, bütün bir data: URI ya da JWT), Dosya seçin düğmesine basın ya da karta bir dosya bırakın. Araç hangi yönde çevireceğini kendisi anlar, bunu etikette söyler ve diğer okumayı bir tık uzakta tutar.
Bir dosyayı çözerken baytların kendisinden okunan türü, boyutu, bir resmin piksel boyutunu, resim ya da PDF için Önizleme sekmesini ve doğru uzantıyla indirmeyi alırsınız. Bir dosyayı kodlarken Base64 kodunu, kullanıma hazır bir data: URI'yi ve kodlamanın boyuta maliyetini alırsınız. Sonucun altındaki Alfabe, Dolgu ve Satır sonları seçenekleri çıktıyı değiştirir.

Tek alan, iki yönMetin, Base64, data: URI veya JWT yapıştırın. Etiket nasıl okunduğunu söyler, menü bunu değiştirir.Dosya seçinYa da kartın herhangi bir yerine bir dosya bırakın: sekmeden çıkmadan Base64 ve data: URI olur.Baytlar ne?Çözerken sonuç dosyanın türü, boyutu ve imzasıyla açılır, ardından önizleme ve indirme gelir.Çıktı seçenekleriStandart ya da URL güvenli alfabe, dolgu açık ya da kapalı ve MIME ya da PEM için bölünmüş satırlar.3 bayt → 4 karakterKendi baytlarınız, altışarlı gruplara yeniden bölünmüş. Bitlerinin nasıl toplandığını görmek için bir karakterin üzerine gelin.Base64 nedir ve neden var?
Base64, her türlü baytı her yerden sağ salim geçen 64 karakterle yazar: A–Z, a–z, 0–9, + ve /. Var olma nedeni, e-posta, URL'ler, JSON ve XML'in metin için tasarlanmış olması ve ham bir baytın onları bozan bir kontrol kodu, tırnak işareti ya da boş (null) karakter olabilmesidir.
Bir seferde üç bayt alır, bunların 24 bitini yan yana dizer ve bu diziyi altışarlı dört gruba böler. Altı bit 64 değer tutar, bu yüzden her grup tam olarak bir karakteri belirtir. Her seferinde üç bayt girer, dört karakter çıkar: Base64 kodunun girdiden yaklaşık üçte bir büyük olmasının nedeni budur.
Üç bayt 24 bit eder. Base64 bunları yeniden altışarlı dört gruba böler ve her grup 64 yazdırılabilir karakterden birini belirtir; bu yüzden üç bayt her zaman dört karaktere mal olur. %33 büyüme buradan gelir.
İki bayt 16 bit eder. Base64 üçüncü grubu tamamlamak için 2 sıfır biti ekler ve dördüncü karakterin yerinde bir = durur.
Bir bayt 8 bit eder. Base64 ikinci grubu tamamlamak için 4 sıfır biti ekler ve üçüncü ile dördüncü karakterin yerinde iki = durur. = hiç bit taşımaz.
Base64 to PDF: Base64 kodu PDF'ye nasıl çevrilir?
Dizeyi yapıştırın, araç PDF'yi yeniden oluşturur: sürümü ve boyutu gösterir, belgeyi tarayıcınızın kendi PDF görüntüleyicisinde açar ve indirmenizi sağlar. PDF olduğunu söylemeniz ya da önce bir data: önekini silmeniz gerekmez.
Bir PDF ilk beş baytından (%PDF-) tanınır; bu yüzden dosyanın adı, gönderenin iddia ettiği tür ya da geldiği alan aksini söylese bile dosya doğru tanımlanır. Baytlar PDF değilse sayfa, hiç var olmayan bir belgeyi açmaya çalışıp başarısız olmak yerine ne olduklarını söyler.
Dosya tarayıcınızda yeniden oluşturulur. Hiçbir şey yüklenmez; PDF bir maaş bordrosu, sözleşme ya da fatura olduğunda bu önemlidir.
"document": "JVBERi0xLjcKJeLjz9MKMS…"Yanıttaki bir alan. Tırnaklar Base64 dizesinin parçası değildir.Content-Transfer-Encoding: base64MIME gövdeyi her satırda 76 karakter olacak şekilde böler. Satır sonlarıyla birlikte yapıştırın: atlanırlar.data:application/pdf;base64,JVBERi0x…Tamamını yapıştırın. Önek okunur, elle silmeniz gerekmez.- 25%
- 50P
- 44D
- 46F
- 2D-
- 311
- 2E.
- 377
İlk 5 bayt, %PDF-, imzanın tamamıdır. 6. bayttan 8. bayta kadar olanlar sürümü verir: 1.7. Dosya uzantısının burada hiçbir rolü yok, bu yüzden birinin .txt diye adlandırdığı bir PDF yine PDF olarak geri gelir.
Resim Base64 koduna nasıl çevrilir ve ne zaman çevrilmeli?
Resmi bırakın; Base64 kodunu ve HTML ya da CSS içine yapıştırmaya hazır bir data: URI'yi alın. Bunu yapmanız gerekip gerekmediği daha zor bir soru: Base64 her zaman yaklaşık üçte bir fazlaya mal olur ve satır içi bir resim tek başına önbelleğe alınamaz.
Diğer yönde, Base64 kodundan resme çevirirken biçimi, boyutu ve ekrandaki resimden değil dosyanın kendi başlığından okunan gerçek piksel boyutunu, ayrıca doğru uzantıyla indirmeyi alırsınız.
- Diskteki dosya12,9 kB %100
- Base64 olarak17,3 kB +%33,4
- MIME için 76 karakterde bölünmüş17,5 kB +%35,1
- Dosya, gzip ile11,7 kB -%9,5
- Base64, gzip ile12,5 kB -%3,2
- bir kez indirilir
- tarayıcı ve CDN tarafından önbelleğe alınır
- sayfanın içinde değil, yanında getirilir
- sıkıştırmadan önce üçte bir daha büyük
- yalnızca içinde bulunduğu dosyanın parçası olarak önbelleğe alınır
- stil sayfasının ya da HTML kodunun parçası olarak ayrıştırılır
Sıkıştırma farkın çoğunu geri kazanır: gzip uygulandığında Base64, gzip uygulanmış dosyadan yalnızca %7 daha büyüktür. Geri veremediği şey resmin kendi önbellek kaydıdır: bir HTML sayfasına gömüldüğünde, onu taşıyan her sayfayla birlikte yeniden indirilir.
Pratik kural: birkaç yüz baytı (bir simge, bir boşluk görseli, bir e-postadaki logo) satır içine koyun, daha büyüğüne bağlantı verin. Bu 12,9 kB boyutundaki PNG resmi sınırı çoktan aştı.
Base64 ile URL güvenli Base64 arasındaki fark nedir?
URL güvenli Base64 (RFC 4648 §5), iki karakteri değiştirilmiş aynı kodlamadır: + yerine -, / yerine _ gelir. Dolgu da çoğu zaman atlanır.
Sonucun bir URL'ye, dosya adına ya da çereze girdiği her yerde kullanın. JSON Web Token baştan sona bunu kullanır; bir token'ın parçalarının hiçbir zaman = ile bitmemesinin nedeni budur. Bu araç iki alfabeyi de okur ve bir dize ikisini birden içerdiğinde size söyler.
+/8=-_8=-_8+→-İndeks 62. Sorgu dizesinde form çözücü+işaretini boşluk olarak okur, bu yüzden veri yanlış geri gelir./→_İndeks 63. Yolda/yeni bir bölüm başlatır, bu yüzden değer ikiye bölünür.=atıldıURL içinde=genellikle%3Dolarak yüzde kodlanır (RFC 4648 §5). JWT onu tamamen atar (RFC 7515 §2): baytların nerede bittiğini tek başına uzunluk söyler.
İki alfabenin ilk 62 karakteri aynıdır; bu yüzden iki alfabeyi de okuyan bir araç ikisini de çözebilir ve bu sayfa, bir dize ikisini birden içerdiğinde size söyler.
Base64 şifreleme mi? Hayır.
Base64 hiçbir şey gizlemez. Anahtar da sır da yoktur ve geri çevirmek hiç çaba gerektirmez: bunun gibi bir çözücü bunu siz yazarken yapar.
Bunun en çok önem taşıdığı yer HTTP Basic kimlik doğrulamasıdır: başlık, kullanıcı adını ve parolayı onu gören herkesin okuyabileceği tek bir Base64 dizesi olarak taşır; bu yüzden RFC 7617 bunu yalnızca TLS gibi şifreli bir bağlantı üzerinden güvenli sayar. Bir şeyin okunamaz kalması gerekiyorsa şifreleme gerekir. Base64 yalnızca baytları metin için kurulmuş bir kanaldan güvenle geçirir.
RFC 7617 §2 bölümündeki adımlarla oluşturulmuş bir Authorization başlığı
Authorization: Basic dXNlcjpwYXNzd29yZA==user:passwordRFC 7617 başlığı adım adım oluşturur ve son adım, “korumanın” tamamıdır: istemci “bu oktet dizisini Base64 kullanarak kodlayıp basic-credentials elde eder”. RFC'nin §1 bölümü bunun ne anlama geldiğini söyler: bağlantıyı TLS ya da benzeri bir sistem korumadığı sürece “kullanıcı kimliği ve parola ağ üzerinden açık metin olarak iletilir”. Base64 kodlamasında anahtar yoktur, yani kırılacak bir şey de yoktur: dizeye sahip olan parolaya da sahiptir.
Çözülen metin neden bozuk karakterlere (mojibake) dönüşüyor?
Çünkü Base64 bayt taşır ve baytlar ancak bir şey karakter kodlamasını seçtiğinde harfe dönüşür. UTF-8 ile yazılmış metni ISO-8859-1 gibi okursanız é, é olur; ISO-8859-1 metnini UTF-8 gibi okursanız bir değiştirme işaretine dönüşür.
Bir data: URI kendi karakter setini bildirebilir; bu sayfa da her şeyi zorla UTF-8 olarak okumak yerine metni o karakter setiyle okur. Tarayıcınızda bildirilen karakter seti için bir çözücü yoksa sayfa, yanlış harfleri sessizce göstermek yerine bunu açıkça söyler.
UTF-8 kodlamasında é 2 bayt tutar; ISO-8859-1 kodlamasında 1 bayt. Base64 harfleri değil baytları taşır, bu yüzden dizenin kendisi kod çözücüye hangisinin kastedildiğini söyleyemez.
Python, JavaScript, Java, C#, Go, PowerShell ve terminalde Base64
Her dilde Base64 yerleşik olarak gelir. Tuzaklar her yerde aynı: dizeyi değil baytları kodlayın ve metnin hangi karakter kodlamasında olduğunu belirtin.
En keskin uç JavaScript'teki btoa() fonksiyonudur: yalnızca U+00FF ve altındaki karakterleri kabul eder, bu yüzden Latin-1 dışındaki her şeyin önce TextEncoder ile UTF-8 baytlarına dönüştürülmesi gerekir. Aşağıdaki her örnek “Man” kelimesini kodlar ve çözer; hepsi çıktısı kontrol edilmek üzere çalıştırıldı.
import base64 b64 = base64.b64encode("Man".encode("utf-8")).decode("ascii") print(b64) # TWFu print(base64.b64decode(b64).decode("utf-8")) # Man
26 Ekim 2026 tarihinde Python 3.14.4 ile çalıştırıldı: yorumlarda gösterileni yazdırır.
const bytes = new TextEncoder().encode("Man"); const b64 = btoa(String.fromCharCode(...bytes)); console.log(b64); // TWFu const back = Uint8Array.from(atob(b64), (c) => c.charCodeAt(0)); console.log(new TextDecoder().decode(back)); // Man
26 Ekim 2026 tarihinde Node.js 22.23.2 ile çalıştırıldı: yorumlarda gösterileni yazdırır.
import java.util.Base64;
import static java.nio.charset.StandardCharsets.UTF_8;
public class Main {
public static void main(String[] args) {
String b64 = Base64.getEncoder().encodeToString("Man".getBytes(UTF_8));
System.out.println(b64); // TWFu
byte[] back = Base64.getDecoder().decode(b64);
System.out.println(new String(back, UTF_8)); // Man
}
}26 Ekim 2026 tarihinde OpenJDK 25.0.2 ile çalıştırıldı: yorumlarda gösterileni yazdırır.
using System.Text; var b64 = Convert.ToBase64String(Encoding.UTF8.GetBytes("Man")); Console.WriteLine(b64); // TWFu var back = Convert.FromBase64String(b64); Console.WriteLine(Encoding.UTF8.GetString(back)); // Man
26 Ekim 2026 tarihinde .NET 10.0.103 ile çalıştırıldı: yorumlarda gösterileni yazdırır.
package main import ( "encoding/base64" "fmt" ) func main() { b64 := base64.StdEncoding.EncodeToString([]byte("Man")) fmt.Println(b64) // TWFu back, _ := base64.StdEncoding.DecodeString(b64) fmt.Println(string(back)) // Man }
26 Ekim 2026 tarihinde Go 1.25.5 ile çalıştırıldı: yorumlarda gösterileni yazdırır.
$b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Man')) $b64 # TWFu [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64)) # Man
26 Ekim 2026 tarihinde PowerShell 7.5.5 ile çalıştırıldı: yorumlarda gösterileni yazdırır.
printf 'Man' | base64 # TWFu printf 'TWFu' | base64 -d # Man echo 'Man' | base64 # TWFuCg== (echo adds a newline)
26 Ekim 2026 tarihinde macOS 26.6 sürümünün base64 komutu (bash) ile çalıştırıldı: yorumlarda gösterileni yazdırır.
base64 -d, eski macOS sürümlerinde -D olarak yazılır. Kaynak: gnu.org, developer.mozilla.orgBase64 alfabesi: 0'dan 63'e
Altı bitlik her grup 0 ile 63 arasında bir sayıdır ve bu, o sayının arandığı tablodur. Base64 büyük/küçük harfe duyarlıdır: A 0, a ise 26'dır; bu yüzden bir harfin büyüklüğünü değiştirmek dizeyi bozar.
Onu görünce tanımaya değer: art arda gelen A karakterleri art arda sıfır baytlardır; JVBER ile başlayan bir Base64 dizesi bir PDF, iVBOR ile başlayan bir PNG, /9j/ ile başlayan bir JPEG'dir.
- A0
- B1
- C2
- D3
- E4
- F5
- G6
- H7
- I8
- J9
- K10
- L11
- M12
- N13
- O14
- P15
- Q16
- R17
- S18
- T19
- U20
- V21
- W22
- X23
- Y24
- Z25
- a26
- b27
- c28
- d29
- e30
- f31
- g32
- h33
- i34
- j35
- k36
- l37
- m38
- n39
- o40
- p41
- q42
- r43
- s44
- t45
- u46
- v47
- w48
- x49
- y50
- z51
- 052
- 153
- 254
- 355
- 456
- 557
- 658
- 759
- 860
- 961
- +URL güvenli: -62
- /URL güvenli: _63
0–25 aralığı A–Z, 26–51 aralığı a–z, 52–61 aralığı 0–9 karakterleridir. İki alfabe arasında yalnızca tablonun son iki karakteri farklıdır; yukarıda işaretlendiler. = tabloda hiç yok: bir değer değil, üç baytlık son grubun kısa olduğunu söyleyen işarettir.
Base64: sorular ve cevaplar
Base64 decode (Base64 çözme) nedir?
Base64 dosyası nasıl çözülür?
Base64 ne için kullanılır?
data: URI'ler, JSON ve XML içindeki ikili alanlar, JSON Web Token, HTTP Basic kimlik doğrulaması ve PEM dosyalarındaki sertifikalar ile anahtarlar. Her durumda veri, ham baytları değiştirebilecek ya da düşürebilecek bir kanaldan geçmek zorundadır; bu yüzden düz harf ve rakam olarak yol alır.Base64 şifreleme midir?
Base64 kodunu online çözmek güvenli mi?
Base64 neden orijinalden %33 daha büyük?
= dolgu karakteri eklenebilir; e-posta için satırları 76 karakterde bölmek de her satıra bir satır sonu ekler. Bu yüzden uzun bir dize, taşıdığı baytlardan çoğu zaman yaklaşık %35 daha büyüktür. gzip gibi sıkıştırma bu farkın çoğunu geri kazanır.URL güvenli Base64 nedir?
+ yerine -, / yerine _ kullanan Base64 çeşididir ve RFC 4648 §5 bunu tanımlar; böylece sonuç, kaçış karakteri gerekmeden bir URL'ye, dosya adına ya da çereze girebilir. JSON Web Token örneğinde olduğu gibi dolgu da genellikle atılır. Bu araç iki alfabeyi de, tek bir dizede karışık olsalar bile okur ve ikisini de yazabilir.Base64 çözme neden başarısız oluyor?
Base64 kodu resme çevrilebilir mi?
data:image/png;base64, gibi bir önekle ya da öneksiz yapıştırın; resim, dosyanın kendi başlığından okunan biçimi, boyutu ve gerçek piksel boyutuyla birlikte görünür. Ardından onu doğru uzantıyla indirin. PNG, JPEG, GIF, WebP, BMP, ICO ve AVIF önizlenir; SVG ise önce metin olarak gösterilir, çünkü bir SVG betik taşıyabilir.Base64 sonundaki = ne anlama gelir?
= olur; artan tek bayt iki karakter ve == olur. Dolgu hiçbir veri taşımaz: yalnızca kod çözücüye baytların nerede bittiğini söyler. Bu araç da dahil olmak üzere birçok kod çözücü, dolgusu atılmış Base64 kodunu da okur.Boyut sınırı var mı?
Burada JWT çözebilir miyim?
iat ve exp alanlarının yanında tarihler gösterilir, imza ise bayt olarak görünür. Bu sayfa yalnızca üç base64url parçasını çözer: imzayı doğrulamaz ve bir token'ın geçerli olduğunu asla söylemez; bu yüzden bir token'a güvenip güvenmeyeceğinize karar vermek için onu kullanmayın.Eksik bir şey mi var?Bir özellik ya da yeni bir araç önerin
İlgili araçlar
Binary Kod Çevirici
Metni binary'ye, binary'yi metne çevirin: otomatik algılama, hex, ondalık ve sekizlik
UUID Oluşturucu
UUID v4, v7, v1, v5 ve v3 ya da GUID'leri istediğiniz biçimde toplu oluşturun, bir UUID'nin sürümünü ve zaman damgasını çözün
CSR ve Sertifika Çözücü
CSR veya SSL sertifikası çözün: konu, SAN'lar, anahtar boyutu, geçerlilik, veren, parmak izi, imza kontrolü ve CSR-sertifika eşleşmesi
Görünmez Harf
Görünmez harf veya boş karakter kopyalayıp yapıştırın, metindeki gizli karakterleri bulun ya da silin
Epoch Dönüştürücü
Unix timestamp'leri tarihe, tarihleri epoch zamanına her saat diliminde çevirin; toplu çevirme desteğiyle