ToolDeck

ตัวเข้ารหัส Base64 ออนไลน์

เข้ารหัสข้อความหรือข้อมูลไบนารีเป็น Base64

ข้อความธรรมดา

Base64

ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ
เอาต์พุต Base64...

การเข้ารหัส Base64 คืออะไร?

Base64 เป็นรูปแบบการเข้ารหัสจากไบนารีเป็นข้อความที่แสดงข้อมูลไบนารีโดยใช้ชุดอักขระ ASCII ที่พิมพ์ได้ 64 ตัว ออกแบบมาเพื่อส่งข้อมูลไบนารีอย่างปลอดภัยผ่านระบบที่จัดการเฉพาะข้อความ เช่น อีเมล (MIME), HTTP header และ XML ชื่อ "Base64" มาจากอักขระ 64 ตัวที่ใช้ในตัวอักษรการเข้ารหัส

การเข้ารหัสทำงานโดยนำอินพุต 3 ไบต์ (24 บิต) มาแบ่งเป็น 4 กลุ่มละ 6 บิต ค่า 6 บิตแต่ละค่าจะถูกแมปกับตัวอักษรหนึ่งตัวในตัวอักษร Base64 หากความยาวของอินพุตไม่เป็นจำนวนเต็มคูณของสาม จะมีการเพิ่มอักขระ padding (=) เพื่อให้ความยาวเอาต์พุตเป็นจำนวนเต็มคูณของสี่ ผลลัพธ์คือสตริงที่มีขนาดใหญ่กว่าข้อมูลต้นฉบับประมาณ 33% แต่ปลอดภัยสำหรับการส่งผ่านในรูปแบบข้อความธรรมดา

ทำไมต้องใช้เครื่องมือนี้?

ตัวเข้ารหัสนี้จัดการข้อความ Unicode ได้อย่างถูกต้อง รองรับทั้งตัวแปรมาตรฐานและ URL-safe และเข้ารหัสทั้งหมดในเบราว์เซอร์ของคุณ — ข้อมูลของคุณไม่เคยออกจากเครื่องของคุณ

การเข้ารหัสทันที
ผลลัพธ์ปรากฏขณะที่คุณพิมพ์ ไม่มีปุ่มให้คลิก ไม่ต้องรอการตอบสนองจากเซิร์ฟเวอร์
🔗
สลับ URL-safe
สลับระหว่างการเข้ารหัสมาตรฐาน (+/) และ URL-safe (-_) ด้วยการคลิกเพียงครั้งเดียว การเติมจะถูกลบออกโดยอัตโนมัติสำหรับตัวแปร URL-safe
🔒
ทำงานฝั่งไคลเอนต์ทั้งหมด
การเข้ารหัสทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณในเครื่องโดยใช้ API btoa ดั้งเดิมและ TextEncoder ไม่มีอะไรถูกส่งไปยังเซิร์ฟเวอร์ใดๆ
🎛️
รองรับ Unicode
จัดการ Unicode เต็มรูปแบบได้อย่างถูกต้อง รวมถึงอีโมจิ อักขระ CJK และข้อความ UTF-8 ใดๆ โดยใช้ encodeURIComponent ก่อนเข้ารหัส

วิธีใช้ตัวเข้ารหัส Base64 ออนไลน์นี้

ไม่ต้องมีบัญชี ไม่ต้องติดตั้ง ไม่ต้องอัปโหลด — วางข้อความแล้วผลลัพธ์ที่เข้ารหัสจะปรากฏทันที

  1. 1
    วางหรือพิมพ์ข้อความของคุณ
    คลิกที่ช่องอินพุตและวางข้อความใดก็ได้ — สตริงธรรมดา, JSON payload, API key, ที่อยู่อีเมล หรือเนื้อหา UTF-8 ใดก็ตาม การเข้ารหัสจะอัปเดตแบบสดขณะที่คุณพิมพ์
  2. 2
    เลือกรูปแบบของคุณ
    เลือก Standard (RFC 4648) สำหรับ MIME, HTTP Basic Auth และการใช้งานทั่วไป เลือก URL-safe สำหรับ JWT token, พารามิเตอร์ query string, ชื่อไฟล์ และบริบทใดก็ตามที่ + หรือ / จะทำให้การแยกวิเคราะห์ URL เสียหาย
  3. 3
    คัดลอกผลลัพธ์
    คลิก Copy เพื่อส่งสตริง Base64 ไปยังคลิปบอร์ดด้วยคลิกเดียว ผลลัพธ์พร้อมสำหรับการวางลงในโค้ด ไฟล์ config หรือ API request ของคุณโดยตรง
  4. 4
    ใช้งานในแอปพลิเคชันของคุณ
    วางสตริงที่เข้ารหัสไว้ที่ใดก็ตามที่ต้องการ — Authorization header, data URI, JSON field, ตัวแปรสภาพแวดล้อม หรือ Kubernetes secret สำหรับผลลัพธ์ URL-safe padding จะถูกลบออกแล้ว

ตัวอักษร Base64

Base64 ใช้อักขระ 64 ตัว ได้แก่ ตัวพิมพ์ใหญ่ A–Z (ค่า 0–25), ตัวพิมพ์เล็ก a–z (26–51), ตัวเลข 0–9 (52–61) และอักขระพิเศษ 2 ตัวสำหรับค่า 62 และ 63 ตัวแปรมาตรฐาน RFC 4648 ใช้ + และ /; ตัวแปร URL-safe แทนที่ด้วย - และ _ เพื่อหลีกเลี่ยงความขัดแย้งใน URL และชื่อไฟล์

A–Z0–25ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z26–51abcdefghijklmnopqrstuvwxyz
0–952–610123456789
+, /62–63RFC 4648 มาตรฐาน — หลีกเลี่ยงใน URL และชื่อไฟล์
-, _62–63ตัวแปร URL-safe (RFC 4648 §5) — ปลอดภัยใน URL และชื่อไฟล์

Base64 มาตรฐาน เทียบกับ URL-safe

ตัวอักษร Base64 มาตรฐานใช้ + และ / ซึ่งเป็นอักขระพิเศษใน URL และเส้นทางไฟล์ ตัวแปร URL-safe แทนที่ด้วย - และ _ และมักละเว้นอักขระเติม = ใช้การเข้ารหัส URL-safe สำหรับ token JWT, ข้อมูลในสตริงคิวรี, ชื่อไฟล์ และบริบทใดๆ ที่ + หรือ / อาจถูกตีความผิด

อินพุตมาตรฐานURL-safe
ManTWFuTWFu
HelloSGVsbG8=SGVsbG8
AQQ==QQ
1+1=2MSsxPTI=MSsxPTI

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

ไฟล์แนบอีเมล (MIME)
SMTP ถูกออกแบบมาสำหรับข้อความ ASCII 7 บิต การเข้ารหัส Base64 ถูกใช้โดยมาตรฐาน MIME เพื่อฝังไฟล์แนบไบนารี (รูปภาพ, PDF, ไฟล์ปฏิบัติการ) อย่างปลอดภัยในข้อความอีเมล
URI ข้อมูล
ฝังรูปภาพ ฟอนต์ และสินทรัพย์อื่นๆ ลงใน HTML หรือ CSS โดยตรงโดยใช้ URI ข้อมูล: data:image/png;base64,... — ขจัดคำขอ HTTP เพิ่มเติมสำหรับทรัพยากรขนาดเล็ก
เพย์โหลด API
API REST มักต้องการให้ฟิลด์ไบนารี (การอัปโหลดไฟล์ คีย์การเข้ารหัส ใบรับรอง) ถูกเข้ารหัส Base64 เมื่อฝังใน JSON เนื่องจาก JSON ไม่มีประเภทไบนารี
ไฟล์การตั้งค่า
ความลับ Kubernetes, ตัวแปรสภาพแวดล้อม และการตั้งค่า CI/CD มักเก็บความลับไบนารีและใบรับรองเป็นสตริง Base64 เพื่อหลีกเลี่ยงปัญหาการ escape
HTTP Basic Auth
HTTP header Authorization: Basic เข้ารหัสข้อมูลประจำตัวเป็น Base64(ชื่อผู้ใช้:รหัสผ่าน) นี่ไม่ใช่การเข้ารหัส — มันเพียงให้การเข้ารหัสสำหรับการส่งผ่านใน header
Token JWT
JSON Web Token ใช้ URL-safe Base64 (base64url) เพื่อเข้ารหัสส่วน header และ payload ทำให้ token ปลอดภัยที่จะใช้ใน URL และ HTTP header โดยไม่ต้อง escape

เมื่อใดที่ไม่ควรใช้ Base64

Base64 คือการเข้ารหัสสำหรับการส่งข้อมูล ไม่ใช่กลไกความปลอดภัย ต่อไปนี้คือการใช้งานผิดวัตถุประสงค์ที่พบบ่อยที่สุดซึ่งก่อให้เกิดปัญหาจริงในระบบ production:

ไม่ใช่สำหรับความปลอดภัยหรือการเข้ารหัส
Base64 สามารถย้อนกลับได้อย่างง่ายดาย — ไม่ต้องใช้กุญแจหรือรหัสผ่านในการถอดรหัส ทุกคนที่เห็นสตริง Base64 สามารถถอดรหัสได้ในไม่กี่วินาที อย่าใช้ Base64 เป็นตัวแทนของการเข้ารหัส, การแฮช หรือการควบคุมการเข้าถึง
ไม่ใช่สำหรับการบีบอัด
Base64 เพิ่มขนาดผลลัพธ์ประมาณ 33% ซึ่งตรงข้ามกับการบีบอัด อย่าใช้เพื่อลดขนาด payload — ใช้ gzip, Brotli หรือ zstd แทน
ไม่ใช่สำหรับการจัดเก็บไฟล์ไบนารี
การจัดเก็บไฟล์ไบนารีขนาดใหญ่เป็น Base64 ในฐานข้อมูลหรือ JSON API จะสิ้นเปลืองพื้นที่จัดเก็บและหน่วยความจำอย่างมาก ใช้ object storage (S3, R2, Cloudflare) และให้บริการไฟล์ไบนารีโดยตรง

ตัวอย่างโค้ด

วิธีเข้ารหัสสตริงเป็น Base64 ในภาษาและสภาพแวดล้อมยอดนิยม:

JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))

// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
  .replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
Node.js
// Standard
const encoded = Buffer.from(text).toString('base64')

// URL-safe
const urlSafe = Buffer.from(text).toString('base64url')
Python
import base64

# Standard
encoded = base64.b64encode(text.encode()).decode()

# URL-safe (no padding)
url_safe = base64.urlsafe_b64encode(text.encode()).decode().rstrip('=')
CLI (bash)
# Standard
echo -n "Hello, World!" | base64

# URL-safe (requires sed)
echo -n "Hello, World!" | base64 | tr '+/' '-_' | tr -d '='

ตัวเข้ารหัส Base64 ออนไลน์ vs. เครื่องมืออื่น ๆ

มีตัวเข้ารหัส Base64 ออนไลน์หลายตัว จุดแตกต่างหลักสำหรับการใช้งานประจำวันของนักพัฒนาคือความเป็นส่วนตัว ความถูกต้อง และการรองรับรูปแบบต่าง ๆ

ส่วนตัวอย่างสมบูรณ์ — ไม่มีเซิร์ฟเวอร์
ตัวเข้ารหัสนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณโดยใช้ API btoa ในตัวและ TextEncoder ข้อความของคุณจะไม่ถูกส่งไปยังเซิร์ฟเวอร์ใด ๆ — ปลอดภัยสำหรับ API key, token และข้อมูลลับ
การเข้ารหัส Unicode ที่ถูกต้อง
เครื่องมือ Base64 ออนไลน์หลายตัวทำให้อินพุตที่ไม่ใช่ ASCII เสียหายโดยไม่มีการแจ้งเตือน เครื่องมือนี้จัดการ Unicode ทั้งหมดได้อย่างถูกต้อง — emoji, CJK, อาหรับ และข้อความ UTF-8 ทั้งหมด — โดยเข้ารหัสเป็น UTF-8 byte ก่อน
ทั้งสองรูปแบบในที่เดียว
เครื่องมือส่วนใหญ่มีเฉพาะ Base64 มาตรฐาน ตัวเข้ารหัสนี้มีทั้งรูปแบบมาตรฐาน (+/) และ URL-safe (-_) พร้อมการจัดการ padding อัตโนมัติ — ไม่ต้องแทนที่อักขระด้วยตนเอง

คำถามที่พบบ่อย

Base64 เหมือนกับการเข้ารหัสหรือไม่?
ไม่ใช่ Base64 เป็นรูปแบบการเข้ารหัส ไม่ใช่การเข้ารหัสลับ ใครก็สามารถย้อนกลับได้อย่างง่ายดาย — ไม่ต้องใช้คีย์หรือรหัสผ่านในการถอดรหัส อย่าใช้ Base64 เพื่อปกป้องข้อมูลที่ละเอียดอ่อน ใช้การเข้ารหัสที่เหมาะสม (AES, RSA) สำหรับวัตถุประสงค์นั้น
ทำไมผลลัพธ์ Base64 ลงท้ายด้วย = หรือ ==?
Base64 ทำงานในกลุ่มละ 3 ไบต์ (24 บิต) สร้างอักขระ Base64 จำนวน 4 ตัว หากความยาวอินพุตไม่ใช่ผลคูณของ 3 จะเพิ่มอักขระเติม (=) เพื่อให้ความยาวผลลัพธ์เป็นผลคูณของ 4 = หนึ่งตัวหมายความว่ากลุ่มสุดท้ายมี 2 ไบต์ สองตัวหมายความว่ามี 1 ไบต์
URL-safe Base64 คืออะไร?
URL-safe Base64 (กำหนดไว้ใน RFC 4648 §5) แทนที่ + ด้วย - และ / ด้วย _ เพื่อให้สตริงที่เข้ารหัสสามารถใช้ใน URL ชื่อไฟล์ และ HTTP header โดยไม่ต้องเข้ารหัสเปอร์เซ็นต์ โดยปกติจะละเว้นอักขระเติม = ด้วย
Base64 เพิ่มขนาดไฟล์มากแค่ไหน?
การเข้ารหัส Base64 เพิ่มขนาดประมาณ 33% ทุกๆ 3 ไบต์อินพุตกลายเป็น 4 อักขระผลลัพธ์ สำหรับไฟล์ 1 MB ผลลัพธ์ Base64 จะมีขนาดประมาณ 1.37 MB
ฉันสามารถเข้ารหัสไฟล์ไบนารีด้วยเครื่องมือนี้ได้ไหม?
เครื่องมือนี้เข้ารหัสสตริงข้อความ (ซึ่งจะถูกปฏิบัติเป็นไบต์ UTF-8) เพื่อเข้ารหัสไฟล์ไบนารีตามอำเภอใจ (รูปภาพ PDF ไฟล์ปฏิบัติการ) ให้ใช้ไลบรารีภาษาหรือเครื่องมือ CLI ที่อ่านไบต์ดิบ
ความแตกต่างระหว่าง btoa() และ Buffer.from().toString('base64') คืออะไร?
btoa() เป็นฟังก์ชันในตัวเบราว์เซอร์ที่ทำงานกับสตริง Latin-1 มันจะ throw error สำหรับอักขระที่ไม่ใช่ ASCII เว้นแต่คุณจะเข้ารหัสเป็นไบต์ UTF-8 ก่อน (โดยใช้ encodeURIComponent) Buffer.from(text).toString('base64') ใน Node.js จัดการสตริง UTF-8 โดยตรงและเป็นวิธีที่แนะนำฝั่งเซิร์ฟเวอร์
Base64 ทำงานกับไฟล์ไบนารีได้หรือไม่?
เครื่องมือนี้เข้ารหัสสตริงข้อความเป็น UTF-8 byte ลงใน Base64 สำหรับไฟล์ไบนารี (รูปภาพ, PDF, ไฟล์ปฏิบัติการ) ให้ใช้เครื่องมือ CLI หรือไลบรารีภาษาที่อ่าน byte ดิบ ในเบราว์เซอร์ ให้ใช้ FileReader.readAsDataURL() ซึ่งจะคืน data URI ที่มีเนื้อหาไบนารีที่เข้ารหัสด้วย Base64
มีขีดจำกัดขนาดสำหรับการเข้ารหัสหรือไม่?
เครื่องมือนี้ทำงานทั้งหมดในเบราว์เซอร์โดยไม่มีขีดจำกัดฝั่งเซิร์ฟเวอร์ ขีดจำกัดในทางปฏิบัติขึ้นอยู่กับหน่วยความจำเบราว์เซอร์ของคุณ สำหรับอินพุตขนาดใหญ่มาก (เกินสองสามเมกะไบต์) เครื่องมือ CLI เช่น base64 (Linux/macOS) หรือ certutil -encode (Windows) มีประสิทธิภาพมากกว่า