Base64 Encode & Decode
Tukar teks atau fail kepada Base64, atau nyahkod Base64 kembali kepada teks yang boleh dibaca. Unicode dikendalikan dengan betul, abjad selamat URL boleh dipilih dengan satu klik, dan penyahkodan menerima kedua-dua abjad, dengan atau tanpa pelapik.
0 aksara · 0 perkataan · 0 baris
0 aksara · 0 perkataan · 0 baris
Berjalan sepenuhnya dalam tab pelayar ini. Teks Anda tidak pernah dimuat naik atau disimpan.
Abjad Base64
Indeks → aksara daripada RFC 4648. Dua yang terakhir yang diserlahkan berbeza dalam varian selamat URL: 62 ialah + atau -, 63 ialah / atau _.
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
Seberapa panjang output
Setiap 3 bait input menjadi 4 aksara; kumpulan akhir 1 atau 2 bait dilapik dengan = dalam Base64 standard dan dibiarkan tanpa pelapik dalam bentuk selamat URL.
| Input | Bait | Standard | Selamat URL | Panjang |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Apakah fungsi Base64
Base64, yang ditakrifkan dalam RFC 4648, menulis bait sewenang-wenangnya menggunakan 64 aksara ASCII boleh cetak: A–Z, a–z, 0–9, + dan /. Setiap kumpulan tiga bait (24 bit) dipecahkan kepada empat nombor 6 bit, dan setiap nombor memilih satu aksara daripada abjad tersebut. Apabila panjang input bukan gandaan tiga, kumpulan terakhir ditambah satu atau dua tanda =. Hasilnya sentiasa lebih kurang 33% lebih besar daripada input: 4 aksara bagi setiap 3 bait.
Base64 wujud kerana banyak saluran dibina untuk teks. E-mel (MIME), URL data: dalam HTML dan CSS, medan JSON yang membawa imej atau sijil, dan pengepala pengesahan HTTP Basic semuanya menggunakan Base64 untuk memindahkan data binari dengan selamat. Ia bukan penyulitan dan tidak menyembunyikan apa-apa; penyahkodan tidak memerlukan kunci.
Unicode dan varian selamat URL
Base64 mengekod bait, bukan huruf, jadi teks mesti ditukar kepada bait terlebih dahulu. Alat ini sentiasa menggunakan UTF-8, pengekodan yang digunakan oleh web: é menjadi dua bait dan emoji empat bait. Fungsi btoa terbina dalam pelayar sahaja akan menghasilkan ralat pada sebarang aksara di atas U+00FF, sebab itulah pengekod ringkas gagal pada huruf beraksen dan emoji; di sini teks melalui TextEncoder dahulu, dan penyahkodan membalikkannya dengan TextDecoder. Jika bait yang dinyahkod bukan UTF-8 yang sah (imej, fail zip), alat ini memaparkannya dalam heksadesimal dan bukannya teks yang bercelaru.
Base64 standard menggunakan + dan /, yang mempunyai makna dalam URL dan nama fail. Abjad selamat-URL daripada seksyen 5 RFC 4648 menggantikannya dengan - dan _, dan lapikan biasanya dibuang. JSON Web Token menggunakan bentuk ini. Penyahkod menerima kedua-dua abjad dan lapikan yang tiada, jadi anda boleh menampal mana-mana satu.
Mengekod fail dan gambar
Pilih fail dan alat ini membacanya secara setempat dengan FileReader lalu memulangkan Base64-nya, atau URL data: lengkap dengan jenis MIME fail, sedia untuk ditampal ke dalam teg img atau latar belakang CSS. Imej sebaris menjimatkan satu permintaan HTTP tetapi bertambah satu pertiga saiznya dan tidak boleh dicache secara berasingan, jadi ia sesuai untuk ikon kecil dan bukan foto. Untuk imej dengan pratonton serta coretan HTML dan CSS siap pakai, gunakan Imej ke Base64.
Soalan lazim
- Mengapakah output Base64 lebih panjang daripada input saya?
- Setiap 3 bait menjadi 4 aksara, jadi output kira-kira 4/3 saiz input, ditambah sehingga dua aksara lapikan. Teks bukan ASCII lebih panjang lagi, kerana UTF-8 menggunakan dua hingga empat bait bagi setiap aksara.
- Apakah tanda = di hujung?
- Lapikan. Ia menjadikan panjang output gandaan empat apabila panjang input bukan gandaan tiga. Satu = bermakna kumpulan terakhir mempunyai dua bait, dua = bermakna ia mempunyai satu bait.
- Mengapakah penyahkodan gagal dengan ralat aksara tidak sah?
- Input mengandungi sesuatu di luar abjad, seperti ruang dalam sesuatu perkataan, tanda petikan, atau % daripada pengekodan URL. Pemisah baris dan lapikan yang tiada boleh diterima; aksara lain tidak.
- Adakah selamat untuk mengekod kata laluan dengan Base64?
- Base64 tidak menawarkan sebarang perlindungan. Pengesahan HTTP Basic menghantar user:password dalam Base64, sebab itulah ia hanya boleh digunakan melalui HTTPS. Gunakan penyulitan atau cincangan sebenar untuk melindungi rahsia.
- Apakah perbezaan antara Base64 dan Base64url?
- Hanya dua aksara dan lapikan: Base64url menggunakan - dan _ sebagai ganti + dan / serta biasanya tidak menyertakan =, jadi hasilnya boleh diletakkan dalam URL dan nama fail tanpa pelarian.