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.

33 dosya formatı kendi baytlarından tanınır · RFC 4648 · hiçbir şey yüklenmez
Kodlandı

Yukarıya bir şey yapıştırın, karta bir dosya bırakın ya da örneklerden birine basın.

Deneyin

Her şey bu sekmede kalır: yapıştırdığınız ya da bıraktığınız hiçbir şey yüklenmez; çözülen HTML veya betik metin olarak gösterilir, asla çalıştırılmaz.

3 bayt → 4 karakter
Örnek: Man
M77 · 4D1. bayt
a97 · 612. bayt
n110 · 6E3. bayt
1922546

Üç 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.

1. karakter

16 + 2 + 1 = 19 T

Standart alfabedeki indeksi: 19.

1baytın bittiği yereklendi, sizin değilURL güvenlide farklıAltı bitinin nasıl toplandığını görmek için bir karakterin üzerine gelin.

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.

Base64 decode aracı: yapıştırılan bir Base64 dizesi türü, boyutu ve 3 bayt → 4 karakter şemasıyla bir PDF belgesine çözülmüşBase64 decode aracı: yapıştırılan bir Base64 dizesi türü, boyutu ve 3 bayt → 4 karakter şemasıyla bir PDF belgesine çözülmüş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.
Araç bir PDF'yi çözüyor. Her bölümün ne işe yaradığını görmek için bir numara seçin.

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.

Man → TWFu
M77 · 4D1. bayt
a97 · 612. bayt
n110 · 6E3. bayt
1922546TWFu

Üç 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.

Ma → TWE=
M77 · 4D1. bayt
a97 · 612. bayt
bayt yok—3. bayt
19224—TWE=

İ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.

M → TQ==
M77 · 4D1. bayt
bayt yok—2. bayt
bayt yok—3. bayt
1916——TQ==

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.

Beyaz çizgiler bir baytın bittiği ve sonrakinin başladığı yeri gösterir. Altışarlı gruplarla örtüşmezler ve bu kayma, mekanizmanın ta kendisidir. Kaynak: RFC 4648 §4

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.

Bir API'den JSON"document": "JVBERi0xLjcKJeLjz9MKMS…"Yanıttaki bir alan. Tırnaklar Base64 dizesinin parçası değildir.
Bir e-posta ekiContent-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.
Bir data: URIdata:application/pdf;base64,JVBERi0x…Tamamını yapıştırın. Önek okunur, elle silmeniz gerekmez.
İlk baytlar ne olduğunu söyler
  1. 25%
  2. 50P
  3. 44D
  4. 46F
  5. 2D-
  6. 311
  7. 2E.
  8. 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.

Base64 PDF'nin kopyalandığı üç yer ve çözüldükten sonra onu tanıtan baytlar. Kaynak: ISO 32000-1:2008 §7.5.2, RFC 8118 §8

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
Gerçek bir dosya
  • bir kez indirilir
  • tarayıcı ve CDN tarafından önbelleğe alınır
  • sayfanın içinde değil, yanında getirilir
Aynı resim satır içinde
  • 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ı.

Aracın örneğinin çözdüğü resim üzerinde ölçüldü: aynı baytlar beş şekilde taşındı, gzip en yüksek seviyede. Kaynak: RFC 2045 §6.8

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.

Standart (RFC 4648 §4)+/8=
URL güvenli (RFC 4648 §5)-_8=
JWT içinde base64url (RFC 7515 §2)-_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 %3D olarak 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.

İki alfabe arasında yalnızca 2 karakter farklıdır. Geri kalan her şey aynıdır. Kaynak: RFC 4648 §5, RFC 7515 §2

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==

Bir adım geri: anahtar gerekmez, parola gerekmez

user:password

RFC 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.

Yukarıdaki kimlik bilgileri uydurmadır. Onları geri okumak tek adım sürer ve anahtar gerektirmez: “kodlama, şifreleme değil” sözünün anlamı budur. Kaynak: RFC 7617 §2, §1

Çö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 ile yazılmış “Café”436166C3A9
ISO-8859-1 ile yazılmış “Café”436166E9

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.

Doğru okunmuş hâliCafé
ISO-8859-1 olarak okunan UTF-8 baytlarıCafé
UTF-8 olarak okunan ISO-8859-1 baytlarıCaf�
Mojibake'nin (bozuk karakterlerin) iki biçimi vardır: UTF-8 tek baytlık bir kod sayfası gibi okunduğunda okunabilir anlamsızlık (Café), baytlar hiç geçerli UTF-8 değilse bir değiştirme işareti (Caf�). Kaynak: RFC 4648 §4, RFC 2397 §4

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.

Her kod parçası “Man” üzerinde çalıştırıldı ve yorumlarında gösterileni yazdırır. Terminaldeki base64 -d, eski macOS sürümlerinde -D olarak yazılır. Kaynak: gnu.org, developer.mozilla.org

Base64 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.

  1. A0
  2. B1
  3. C2
  4. D3
  5. E4
  6. F5
  7. G6
  8. H7
  9. I8
  10. J9
  11. K10
  12. L11
  13. M12
  14. N13
  15. O14
  16. P15
  17. Q16
  18. R17
  19. S18
  20. T19
  21. U20
  22. V21
  23. W22
  24. X23
  25. Y24
  26. Z25
  27. a26
  28. b27
  29. c28
  30. d29
  31. e30
  32. f31
  33. g32
  34. h33
  35. i34
  36. j35
  37. k36
  38. l37
  39. m38
  40. n39
  41. o40
  42. p41
  43. q42
  44. r43
  45. s44
  46. t45
  47. u46
  48. v47
  49. w48
  50. x49
  51. y50
  52. z51
  53. 052
  54. 153
  55. 254
  56. 355
  57. 456
  58. 557
  59. 658
  60. 759
  61. 860
  62. 961
  63. +URL güvenli: -62
  64. /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.

RFC 4648 §4 bölümünün verdiği sırayla 64 karakter. Her birinin altındaki sayı, temsil ettiği altı bitlik değerdir. Kaynak: RFC 4648 §4

Base64: sorular ve cevaplar

Base64 decode (Base64 çözme) nedir?

Base64 çözme, dört karakterlik her grubu temsil ettiği üç bayta geri çevirir. Bu baytlar metin olabileceği gibi PDF, PNG resmi ya da ZIP arşivi gibi bütün bir dosya da olabilir. Bu araç hangisi olduğunu anlamak için ilk baytları okur, ardından bir ekran dolusu anlamsız sembol yerine metnin ya da dosyanın kendisini gösterir ve indirmenizi sağlar.

Base64 dosyası nasıl çözülür?

Base64 dizesini alana yapıştırın. Araç onu çözer, ilk baytları tanıdığı dosya imzalarıyla karşılaştırır (toplam 33 dosya formatı), biçimi adlandırır, bir resmi ya da PDF'yi önizler ve dosyayı doğru uzantıyla indirmenizi sağlar. Ne tür bir dosya olduğunu hiçbir zaman söylemeniz gerekmez ve bunu anlamak için hiçbir şey yüklenmez.

Base64 ne için kullanılır?

Baytları metin için kurulmuş yerlerden geçirir: e-posta ekleri (MIME), HTML ve CSS içindeki 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?

Hayır. Base64 bir şifre değil, bir kodlamadır: anahtarı da sırrı da yoktur ve herkes onu bir anda geri çevirebilir, tıpkı bu sayfanın siz yazarken yaptığı gibi. Base64 ile yazılmış her şeyi açıkta duruyormuş gibi düşünün. Verinin gizli kalması gerekiyorsa önce şifreleyin; metin olarak taşınması gerekiyorsa ardından şifrelenmiş baytları Base64 ile kodlayın.

Base64 kodunu online çözmek güvenli mi?

Bu sayfada evet ve bunu kontrol edebilirsiniz: her şey kendi tarayıcı sekmenizde JavaScript ile çözülür ve yapıştırdığınız ya da bıraktığınız hiçbir şey yüklenmez. Çözülen HTML, SVG ve betikler metin olarak gösterilir, asla çalıştırılmaz; bir resmi ya da PDF'yi tarayıcınızın kendi görüntüleyicisi gösterir. Kullanırken tarayıcınızın geliştirici araçlarında Ağ sekmesini açın: hiçbir istek verinizi taşımaz.

Base64 neden orijinalden %33 daha büyük?

Çünkü her üç bayt dört karakter olur ve dört bölü üç 1,33 eder. Sona en fazla iki = 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?

Neredeyse her zaman Base64 alfabesinde olmayan tek bir karakter yüzünden: bir sohbet uygulamasının dizeyi kestiği yerdeki üç nokta, bir kelime işlemciden gelen kıvrık tırnak ya da bir PDF'den gelen bölünmez boşluk. Bu araç karakterin adını söyler, konumuyla birlikte yerini gösterir, ondan önce ne kadarının sorunsuz çözüldüğünü bildirir ve geriye kalan kısım hâlâ çözülebiliyorsa “Kaldır ve çöz” seçeneğini sunar.

Base64 kodu resme çevrilebilir mi?

Evet. Dizeyi 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?

Üç baytlık son grubun kısa kaldığı anlamına gelir. Artan iki bayt üç karakter ve bir = 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ı?

Seçtiğiniz ya da bıraktığınız bir dosya en fazla 10 MB olabilir; daha büyüğü adı ve boyutuyla birlikte reddedilir, asla yarım okunmaz. Yapıştırılan metin için sınır 14.349.002 karakter: bu, 10 MB boyutundaki bir dosyanın satır sonlarıyla birlikte Base64 kodu için yeterlidir, yani aracın kodladığı her şey yeniden çözülebilir. Büyük girdiler arka planda okunur, böylece yazarken takılma olmaz.

Burada JWT çözebilir miyim?

Evet. Token'ı yapıştırın; başlığı ve veri yükü biçimlendirilmiş JSON olarak yazdırılır, 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