Base64 Encoder/Decoder
A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, secure copy, and clear.
เข้ารหัส (ข้อความ → Base64)
ถอดรหัส (Base64 → ข้อความ)
คำแนะนำการใช้งาน
Base64 แปลงข้อมูลไบนารีเป็น ASCII เพื่อการส่งผ่านและการจัดเก็บ ขนาดข้อมูลจะเพิ่มขึ้นประมาณ 33%
การเข้ารหัส: แปลงข้อความธรรมดาให้เป็น Base64 เพื่อการส่งผ่านที่ปลอดภัยยิ่งขึ้น
การถอดรหัส: คืนค่าข้อความต้นฉบับจากสตริง Base64
คุณสมบัติ
- รองรับ UTF-8: จัดการอักขระที่ไม่ใช่ ASCII ได้อย่างถูกต้อง (ใช้ encodeURIComponent/unescape ห่อหุ้ม)
- รองรับ URL-safe: เปลี่ยน + / เป็น - _ ด้วยปุ่มเดียว พร้อมตัวเลือกตัด = ท้ายสาย
- เตรียมการถอดรหัส: สามารถละเว้นช่องว่าง แปลงกลับจาก URL-safe และเติม = อัตโนมัติ
- โต้ตอบแบบเรียลไทม์: ประมวลผลอัตโนมัติเมื่อพิมพ์ แสดงสถิติความยาวและการเพิ่มขึ้นของขนาด
- ใช้งานง่าย: ปุ่มคัดลอกเร็ว สามารถเติมผลลัพธ์ข้ามช่อง ใช้งานได้ด้วยแป้นพิมพ์ และเหมาะสำหรับอุปกรณ์มือถือ
- ธีมสม่ำเสมอ: ไม่ใช้คลาส dark: ของ Tailwind แต่ใช้ธีม DaisyUI อย่างสมบูรณ์
Base64 คืออะไร
Base64 เป็นวิธีการเข้ารหัสข้อมูลไบนารีให้เป็นข้อความ ASCII ซึ่งมักใช้ในการส่งข้อมูลรูปภาพหรือไฟล์ผ่านโปรโตคอลข้อความ เช่น JSON, XML, HTTP
มันจะแมปข้อมูลทุก 3 ไบต์ให้เป็นอักขระที่พิมพ์ได้ 4 ตัว ซึ่งมักทำให้ขนาดเพิ่มขึ้นประมาณ 33%
Base64 มาตรฐานใช้อักษร A–Z a–z 0–9 + / และตัวเติม =; ส่วนเวอร์ชันที่ปลอดภัยสำหรับ URL จะแทนที่ + / ด้วย - _ เพื่อหลีกเลี่ยงปัญหาการหนีอักขระใน URL
การใช้งานทั่วไป
- ฝังรูปภาพหรือไฟล์เล็กๆ ในรูปแบบ Data URI
- ส่งข้อมูลไบนารีระหว่างไคลเอนต์และเซิร์ฟเวอร์ (เช่น ข้อความที่เข้ารหัสหรือสตรีมที่บีบอัด)
- แปลงข้อความให้อยู่ในรูปแบบที่พิมพ์ได้ เพื่อหลีกเลี่ยงปัญหาการจัดการอักขระที่ไม่สอดคล้องกันหรืออักขระที่มองไม่เห็น
คำถามที่พบบ่อยและข้อควรระวัง
- ชุดอักขระ: ในสภาพแวดล้อมเว็บ โปรดจัดการข้อความให้อยู่ในรูปแบบ UTF-8 ก่อน (เครื่องมือนี้มีการจัดการไว้แล้ว)
- URL-safe: แนะนำให้ใช้เวอร์ชัน URL-safe สำหรับพารามิเตอร์หรือเส้นทาง URL และพิจารณาตัดตัวเติมออก
- ตัวเติม: การดำเนินการบางอย่างอนุญาตให้ละเว้น = โดยการถอดรหัสควรเติมให้ครบเป็นพหุคูณของ 4 อัตโนมัติ
- การขึ้นบรรทัดใหม่: MIME Base64 อาจมีการขึ้นบรรทัดใหม่ ให้เลือก "ละเว้นอักขระว่าง" เมื่อถอดรหัส
วิธีการเข้ารหัสและถอดรหัส Base64 ผ่านภาษาโปรแกรม
JavaScript
ข้อความ → Base64 (ปลอดภัยสำหรับ UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-safe
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
ถอดรหัส (Base64 → ข้อความ)
// การเตรียมการล่วงหน้า: สามารถแทนที่ -_ ด้วย +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
เข้ารหัส (ข้อความ → Base64)
$encoded = base64_encode($text);
// URL-safe
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
ถอดรหัส (Base64 → ข้อความ)
$b64 = strtr($input, '-_', '+/');
// เติม '=' อัตโนมัติ
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
เข้ารหัส (ข้อความ → Base64)
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# เข้ารหัสแบบ URL-safe (ตัดตัวเติม)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
ถอดรหัส (Base64 → ข้อความ)
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # เติม '=' อัตโนมัติ
return base64.b64decode(s).decode('utf-8')
Go
เข้ารหัส (ข้อความ → Base64)
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// เข้ารหัสแบบ URL-safe (ไม่มีตัวเติม)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
ถอดรหัส (Base64 → ข้อความ)
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// ถอดรหัสแบบ URL-safe (ไม่มีตัวเติม)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
เข้ารหัส (ข้อความ → Base64)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// เข้ารหัสแบบ URL-safe (ไม่มีตัวเติม)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
ถอดรหัส (Base64 → ข้อความ)
use base64::{engine::general_purpose, Engine as _};
let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();
let url_dec = String::from_utf8(
general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
การพึ่งพา Cargo: base64 = "0.22"
Java
เข้ารหัส (ข้อความ → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// เข้ารหัสแบบ URL-safe (ไม่มีตัวเติม)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
ถอดรหัส (Base64 → ข้อความ)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);