Base64 Encoder/Decoder

ตัวเข้ารหัสและถอดรหัส Base64 ออนไลน์ฟรี สำหรับการเข้ารหัสและถอดรหัสอย่างรวดเร็ว มาพร้อมการจัดการ UTF-8 ที่ปลอดภัย การแปลงที่ปลอดภัยสำหรับ URL การเติมตัวอักษรอัตโนมัติ สถิติแบบเรียลไทม์ และฟังก์ชันคัดลอกที่ปลอดภัย มีตัวอย่างโค้ดหลายภาษา การสร้าง Data URI คู่มือการใช้งานโดยละเอียด และคำถามที่พบบ่อย อินเทอร์เฟซที่ใช้งานง่าย มีการกรอกข้อมูลอินพุตแบบสองทิศทาง รองรับการใช้งานผ่านคีย์บอร์ด และออกแบบให้เข้ากับมือถือ ไม่ต้องดาวน์โหลด ใช้งานได้โดยตรงในเบราว์เซอร์

เข้ารหัส (ข้อความ → Base64)

ถอดรหัส (Base64 → ข้อความ)

วิธีการใช้งาน

Base64 จะเข้ารหัสข้อมูลไบนารีให้กลายเป็น ASCII เพื่อการส่งและจัดเก็บข้อมูลอย่างปลอดภัย ขนาดจะเพิ่มขึ้นประมาณ 33%
เข้ารหัส: แปลงข้อความธรรมดาให้เป็น Base64 เพื่อการส่งผ่านข้อมูลอย่างปลอดภัย
ถอดรหัส: กู้คืนข้อความเดิมจากสตริง Base64

คุณสมบัติ

  • รองรับ UTF-8: จัดการกับอักขระที่ไม่ใช่ ASCII ได้อย่างถูกต้อง (ห่อด้วย encodeURIComponent/unescape)
  • รองรับโหมด URL-safe: สลับระหว่าง +/→ - _ เพียงคลิกเดียว และสามารถลบอักขระ pad = ได้ตามต้องการ
  • เตรียมข้อมูลก่อนถอดรหัส: ไม่สนใจช่องว่าง แปลงเป็นโหมด URL-safe อัตโนมัติ และเติมอักขระ = อัตโนมัติ
  • โต้ตอบแบบเรียลไทม์: ประมวลผลอินพุตทันที พร้อมแสดงสถิติความยาวและอัตราการเพิ่มขนาด
  • ใช้งานง่าย: คัดลอกข้อมูลได้รวดเร็ว เติมข้อมูลระหว่างช่องอินพุตทั้งสองทิศทาง ควบคุมด้วยคีย์บอร์ดได้ และเหมาะกับมือถือ
  • ธีมที่สอดคล้องกัน: ไม่ใช้คลาส dark: ของ Tailwind — ตกแต่งด้วยธีมของ DaisyUI ทั้งหมด

ตัวอย่างรวดเร็ว

ข้อความเดิม:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

Base64 คืออะไร?

Base64 คือวิธีการเข้ารหัสข้อมูลไบนารีให้กลายเป็นข้อความ ASCII ซึ่งมักใช้ในการส่งภาพหรือเนื้อหาไฟล์ผ่านโปรโตคอลที่ใช้ข้อความ เช่น JSON, XML และ HTTP

จะแมปทุก 3 ไบต์ให้เป็นตัวอักษรที่พิมพ์ได้ 4 ตัว โดยปกติจะทำให้ขนาดเพิ่มขึ้นประมาณ 33%

Base64 แบบมาตรฐานใช้ A–Z, a–z, 0–9, +, / และอักขระ pad =; เวอร์ชัน URL-safe จะเปลี่ยน + และ / เป็น - และ _ เพื่อหลีกเลี่ยงปัญหาการ Escape ใน URL

กรณีการใช้งานทั่วไป

  • ฝังภาพหรือไฟล์ขนาดเล็กเป็น Data URI
  • ส่งผ่านข้อมูลไบนารีระหว่างไคลเอนต์และเซิร์ฟเวอร์ (ตัวอย่าง: ข้อความที่เข้ารหัสแล้ว, สตรีมที่บีบอัด)
  • แปลงข้อความให้เป็นรูปแบบที่พิมพ์ได้เพื่อหลีกเลี่ยงความไม่สอดคล้องของการเข้ารหัสหรืออักขระที่มองไม่เห็น

คำถามที่พบบ่อยและข้อสำคัญ

  • ชุดอักขระ: ในสภาพแวดล้อมเว็บ ให้เข้ารหัสข้อความเป็น UTF-8 ก่อน (เครื่องมือนี้จะรวมขั้นตอนนี้โดยอัตโนมัติ)
  • URL-safe: สำหรับพารามิเตอร์หรือพาธของ URL ให้ใช้เวอร์ชัน URL-safe และพิจารณาลบอักขระ pad =
  • Padding: บางแอพลิเคชันสามารถละเว้น = ได้; ในระหว่างการถอดรหัส จะเติมให้เป็นจำนวนตัวอักษรที่เป็นทวีคูณของ 4 โดยอัตโนมัติ
  • Line breaks: MIME Base64 อาจมีการขึ้นบรรทัดใหม่; เลือก "Ignore whitespace" ในระหว่างการถอดรหัสเพื่อจัดการกับส่วนเหล่านี้

วิธีเข้ารหัส/ถอดรหัส Base64 ในภาษาโปรแกรมมิ่ง

JavaScript
ข้อความ → Base64 (ปลอดภัยสำหรับ UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// ปลอดภัยสำหรับ URL
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
$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 (ลบ Padding)
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 (ไม่มี Padding)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
ถอดรหัส (Base64 → ข้อความ)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// ถอดรหัสปลอดภัยสำหรับ URL (ไม่มี Padding)
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 (ไม่มี Padding)
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 dependency: 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 (ไม่มี Padding)
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);

ตัวอย่าง Data URI

ฝังภาพหรือไฟล์ขนาดเล็กเป็น Data URI:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

หมายเหตุ: อย่าใช้ Data URIs สำหรับไฟล์ขนาดใหญ่ เนื่องจากจะทำให้ขนาด HTML/JSON เพิ่มขึ้นอย่างมากและประสิทธิภาพแย่ลง