การเข้ารหัส Base64 คืออะไร? คำอธิบายฉบับสมบูรณ์
Quick Answer
Base64 encoding แปลง binary เป็น text ด้วยอักขระ 64 ตัว (A-Z, a-z, 0-9, +, /) 3 bytes input เป็น 4 อักขระ Base64 Base64 ย้อนกลับได้ (ไม่ใช่ encryption) และเพิ่มขนาด ~33% ใช้ Base64 Encoder และ Decoder ฟรีของเรา
Introduction
Base64 เป็นรูปแบบ binary-to-text ที่แปลงข้อมูล binary เป็น ASCII ด้วยอักขระพิมพ์ได้ 64 ตัว กำหนดโดย RFC 4648 ใช้ในไฟล์แนบ email (MIME), Data URLs, ส่วน JWT token และ JSON payload ที่มีข้อมูล binary Base64 เป็น encoding ไม่ใช่ encryption —ย้อนกลับได้เต็มที่ ไม่ต้องมี key
Step by Step
-
Understand the character set
Base64 uses 64 characters: A-Z (26), a-z (26), 0-9 (10), + and / (2). The = character is used for padding when the input length is not a multiple of 3. The URL-safe variant replaces + with - and / with _ and omits padding.
-
Learn how encoding works
Base64 processes input in 3-byte (24-bit) blocks. Each 24-bit block is split into four 6-bit groups. Each 6-bit value (0-63) maps to one of the 64 characters. If the input is not a multiple of 3, padding (=) is added: 1 byte input → 2 Base64 chars + ==, 2 bytes → 3 chars + =.
-
Understand the size overhead
Base64 increases data size by approximately 33% — every 3 bytes becomes 4 characters. A 1 MB file becomes ~1.33 MB when Base64-encoded. This overhead is the trade-off for text-only compatibility.
-
Distinguish encoding from encryption
Base64 is encoding, not encryption. It is reversible without a key — anyone can decode it. Base64 provides no confidentiality; it only converts binary to text for transport. Never use Base64 to store passwords or secrets.
Examples
Encode text
Input: Hello, World!
Output: SGVsbG8sIFdvcmxkIQ==
Encode binary data (shown as hex)
Input: Bytes: 0x00 0x01 0x02
Output: AAEC
URL-safe Base64 (JWT style)
Input: Standard: SGVsbG8= → URL-safe: SGVsbG8 (no padding, - and _ for + and /)
Output: Used in JWT tokens and URL parameters
Common Problems
- Treating Base64 as encryption —Base64 is reversible without a key. Anyone can decode it. Never use it to protect sensitive data.
- Non-ASCII characters —naive btoa() throws on Unicode. Use TextEncoder + btoa(unescape(encodeURIComponent(text))) or a UTF-8-aware tool.
- Padding removal —the = padding is part of the encoding. Removing it breaks decoding (though some decoders can reconstruct it).
- Size overhead —Base64 adds ~33% to data size. For large files, this is significant; consider whether encoding is necessary.
Tips
- Use Base64 for Data URLs to embed small images in HTML/CSS without a separate HTTP request.
- Use URL-safe Base64 (replace + with -, / with _, strip padding) for URLs and JWT tokens.
- Base64 is not encryption —use it for transport compatibility, not for confidentiality.
- Use our Base64 Encoder and Decoder for instant, private conversion in your browser.