# เข้ารหัสและถอดรหัส Base64

> เครื่องมือขั้นสูงสำหรับเข้ารหัสและถอดรหัสข้อความเป็น Base64 จัดการอักขระพิเศษ (UTF-8) รองรับรูปแบบ URL-safe ใช้งานออนไลน์ฟรีทั้งหมด

URL: https://acrafto.com/th/base64-encoder-decoder/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

คุณต้องการแปลงข้อความที่อ่านได้เป็นรูปแบบ Base64 เพื่อใช้ในส่วนหัว HTTP หรือถอดรหัสเนื้อหาของโทเค็น API หรือไม่? **ตัวเข้ารหัสและถอดรหัสข้อความ Base64** ของเราเป็นเครื่องมือพิเศษสำหรับการทำงานกับสตริงข้อความที่สามารถจัดการกับความซับซ้อน เช่น เครื่องหมายวรรคตอนหรืออักขระพิเศษได้

> **คุณกำลังทำงานกับรูปภาพอยู่หรือเปล่า?**  
> หากโค้ดของคุณเริ่มต้นด้วย `data:image/png...` หรือคุณต้องการแปลงไฟล์เป็นข้อความ เครื่องมือนี้จะแสดงอักขระที่ไม่สมเหตุสมผลเท่านั้น โปรดใช้เครื่องมือเฉพาะของเราสำหรับแปลงเป็นรูปภาพ

## รูปแบบ Base64 ทำงานอย่างไร?

หลายคนใช้ Base64 ทุกวัน แต่มีน้อยคนที่จะรู้ว่ามันทำงานอย่างไร มันไม่ใช่เวทมนตร์ แต่เป็นการคำนวณบิตทางคณิตศาสตร์อย่างง่าย

ข้อความทั่วไปในคอมพิวเตอร์จะถูกจัดเก็บเป็น 8 บิต (1 ไบต์) อย่างไรก็ตาม Base64 ใช้อักขระ “ตัวอักษร” 64 ตัว (`A-Z`, `a-z`, `0-9`, `+`, `/`) เนื่องจาก `2^6 = 64` อักขระ Base64 หนึ่งตัวจึงแสดงถึงข้อมูล **6 บิต** อย่างแม่นยำ

**กระบวนการแปลง (อัลกอริทึม):**

1. นำอักขระสามตัวจากข้อความของคุณ (3 × 8 บิต = 24 บิต)
2. แบ่ง 24 บิตเหล่านี้ออกเป็นสี่กลุ่ม กลุ่มละ 6 บิต
3. กำหนดอักขระจากตาราง Base64 ให้แต่ละกลุ่ม

**ผลลัพธ์:** เนื่องจากเราแปลง 3 อักขระเป็น 4 อักขระ สตริง Base64 ที่ได้จึงมักจะ**ยาวขึ้นประมาณ 33%** เสมอเมื่อเทียบกับข้อความต้นฉบับ

## ปัญหาชุดอักขระ: ทำไมตัวแปลง Base64 ทั่วไปถึงไม่รองรับอักขระพิเศษ?

หากคุณเคยลองเข้ารหัสคำว่า “Kůň” ในคอนโซลของเบราว์เซอร์โดยใช้ฟังก์ชัน `btoa('Kůň')` คุณอาจได้รับข้อผิดพลาด: *String contains characters outside of the Latin1 range.*

Base64 เดิมทีออกแบบมาสำหรับอักขระ ASCII 7 บิต อย่างไรก็ตาม ภาษาไทย อีโมจิ และสัญลักษณ์พิเศษอื่นๆ (UTF-8) ใช้หน่วยความจำหลายไบต์ (multibyte characters)

- ตัวอักษร `a` = 1 ไบต์
- ตัวอักษร `ก` = 3 ไบต์
- Emoji 🚀 = 4 ไบต์

เครื่องมือของเราแก้ปัญหานี้ได้ ก่อนการเข้ารหัสเป็น Base64 เราจะแปลงข้อความเป็นลำดับไบต์ UTF-8 อย่างถูกต้อง ด้วยเหตุนี้ คุณจึงสามารถเข้ารหัสวัตถุ JSON, ข้อความภาษาไทย และสัญลักษณ์สมัยใหม่ได้อย่างปลอดภัยโดยไม่มีความเสี่ยงต่อข้อมูลเสียหาย

## การเข้ารหัสข้อความ Base64 ใช้ที่ไหนบ้าง?

ในขณะที่รูปภาพใน Base64 ส่วนใหญ่ใช้สำหรับฝังใน CSS/HTML แต่ Base64 สำหรับข้อความมีการใช้งานที่แตกต่างกันโดยสิ้นเชิงในระบบแบ็กเอนด์:

### 1\. HTTP Basic Authentication

เมื่อคุณเข้าสู่ระบบ API ส่วนหัวมักจะมีลักษณะดังนี้: `Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=` เบื้องหลังโค้ดนี้คือชื่อผู้ใช้และรหัสผ่านที่เชื่อมต่อกันในรูปแบบ `username:password` เครื่องมือของเราช่วยให้คุณสร้างหรือตรวจสอบส่วนหัวเหล่านี้ได้อย่างง่ายดาย

### 2\. JSON Web Tokens (JWT)

เว็บแอปพลิเคชันสมัยใหม่ใช้สิ่งที่เรียกว่า JWT สำหรับการเข้าสู่ระบบ โทเค็นดังกล่าวมีลักษณะเป็นสตริงยาวสามสตริงคั่นด้วยจุด ส่วนข้อมูล (Payload) เป็นวัตถุ JSON ธรรมดาที่เข้ารหัสใน Base64

- **เคล็ดลับ:** ลองวางส่วนกลางของโทเค็น JWT ของคุณที่นี่แล้วถอดรหัส คุณจะเห็นข้อมูลที่แอปพลิเคชันบันทึกเกี่ยวกับคุณอย่างแม่นยำ (เช่น ID ผู้ใช้, วันหมดอายุ)

### 3\. ไฟล์คอนฟิกูเรชัน (Kubernetes Secrets)

แพลตฟอร์มเช่น Kubernetes จัดเก็บข้อมูลลับ (Secrets) ในไฟล์คอนฟิกูเรชัน YAML โดยใช้ Base64 นี่ไม่ใช่การเข้ารหัส แต่เป็นวิธีการจัดเก็บข้อมูลไบนารีหรือข้อความที่มีอักขระที่ก่อปัญหา (ขึ้นบรรทัดใหม่, เครื่องหมายอัญประกาศ) ลงในไฟล์ข้อความ

## การเข้ารหัส Base64 แบบ “URL Safe” คืออะไร และทำไมถึงสำคัญ?

ชุดตัวอักษร Base64 มาตรฐานมีอักขระ `+` (บวก) และ `/` (ทับ) อักขระทั้งสองนี้มีความหมายพิเศษในที่อยู่ URL:

- `/` ใช้คั่นไดเรกทอรี
- `+` มักจะถูกตีความว่าเป็นช่องว่าง

หากคุณส่ง Base64 มาตรฐานในพารามิเตอร์ URL (เช่น `site.com?token=ab/cd+ef`) เซิร์ฟเวอร์อาจอ่านข้อมูลผิดพลาด

**วิธีแก้ปัญหา (โหมด URL Safe):** สวิตช์ของเราเปิดใช้งานตัวแปร **Base64URL** (ตาม RFC 4648) ซึ่งทำการเปลี่ยนแปลงเหล่านี้:

- `+` ถูกเปลี่ยนเป็น `-` (เครื่องหมายขีดกลาง)
- `/` ถูกเปลี่ยนเป็น `_` (เครื่องหมายขีดล่าง)
- อักขระ `=` (padding) ที่ไม่จำเป็นใน URL จะถูกลบออกในตอนท้าย

---

## ความเชื่อผิดๆ: Base64 ไม่ใช่การเข้ารหัส!

เป็นสิ่งสำคัญที่จะต้องตระหนักถึงความแตกต่างที่สำคัญ ซึ่งผู้เริ่มต้นมักจะสับสน:

1. **การเข้ารหัส (Encoding - Base64):** ใช้สำหรับการถ่ายโอนข้อมูล เหมือนกับการห่อของในกระเป๋าเดินทางเพื่อไม่ให้เสียหายระหว่างทาง ใครก็ตามที่พบกระเป๋าเดินทางสามารถเปิด (ถอดรหัส) และเห็นเนื้อหาได้ **ไม่ปลอดภัยสำหรับข้อมูลลับ**
2. **การเข้ารหัสลับ (Encryption - AES, RSA):** ล็อกข้อมูลด้วยกุญแจ หากไม่มีกุญแจ คุณจะไม่สามารถเข้าถึงเนื้อหาได้
3. **การแฮช (Hashing - SHA, MD5):** กระบวนการทางเดียว (เช่น สำหรับการจัดเก็บรหัสผ่าน) ไม่สามารถกู้คืนข้อความต้นฉบับจากผลลัพธ์ได้

*หากคุณต้องการส่งรหัสผ่านหรือข้อมูลที่ละเอียดอ่อน Base64 เพียงอย่างเดียวไม่เพียงพอ คุณต้องใช้ HTTPS (SSL/TLS) ซึ่งจะเข้ารหัสการถ่ายโอนข้อมูล*

---

## คำถามที่พบบ่อย (FAQ)

### เครื่องหมาย "=" ที่ท้ายสตริงหมายความว่าอย่างไร?

นั่นคือสิ่งที่เรียกว่า "padding" (การเติม) เนื่องจาก Base64 เข้ารหัสข้อมูลเป็นกลุ่มละ 3 อักขระ ความยาวของข้อความต้นฉบับจึงอาจไม่สามารถหารด้วยสามได้ เครื่องหมาย "=" จะถูกเพิ่มเข้ามาที่ท้ายเพื่อช่วยให้ตัวถอดรหัสทราบว่าต้องละเว้นกี่บิตในตอนท้าย

### ทำไมข้อความที่ถอดรหัสถึงแสดงผลเป็น "ภาษาต่างดาว"?

คุณอาจกำลังพยายามถอดรหัสข้อมูลที่ไม่ใช่ข้อความ หากสตริง Base64 แสดงถึงไฟล์ที่ถูกบีบอัด (ZIP), รูปภาพ หรือข้อมูลที่เข้ารหัส การแปลงเป็นข้อความ (UTF-8) จะไม่สมเหตุสมผล โปรดลองตรวจสอบที่มาของข้อมูล

### เครื่องมือนี้ใช้งานแบบออฟไลน์ได้หรือไม่?

ได้ ตรรกะการแปลงทั้งหมดเขียนด้วย JavaScript และทำงานโดยตรงในเบราว์เซอร์ของคุณ เมื่อหน้าเว็บโหลดเสร็จ คุณสามารถตัดการเชื่อมต่ออินเทอร์เน็ตได้ และเครื่องมือจะยังคงทำงานอยู่ ข้อมูลของคุณจะไม่ถูกส่งไปยังที่ใด

## Other languages

- Čeština (cs): [Base64 Encoder a Decoder](https://acrafto.com/cs/base64-decoder-encoder/) ([Markdown](https://acrafto.com/cs/base64-decoder-encoder/index.md))
- Slovenčina (sk): [Base64 kódovač a dekódovač](https://acrafto.com/sk/base64-kodovac-dekodovac-online/) ([Markdown](https://acrafto.com/sk/base64-kodovac-dekodovac-online/index.md))
- English (en): [Base64 Encoder and Decoder](https://acrafto.com/en/base64-encoder-decoder/) ([Markdown](https://acrafto.com/en/base64-encoder-decoder/index.md))
- Deutsch (de): [Base64 Encoder und Decoder](https://acrafto.com/de/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/de/base64-encoder-decoder-online/index.md))
- Français (fr): [Encodeur et décodeur Base64](https://acrafto.com/fr/encodeur-decodeur-base64/) ([Markdown](https://acrafto.com/fr/encodeur-decodeur-base64/index.md))
- Español (es): [Codificador y decodificador Base64](https://acrafto.com/es/codificador-base64-decodificador-online/) ([Markdown](https://acrafto.com/es/codificador-base64-decodificador-online/index.md))
- Italiano (it): [Encoder e decoder Base64](https://acrafto.com/it/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/it/encoder-decoder-base64-online/index.md))
- Português (pt): [Codificador e decodificador Base64](https://acrafto.com/pt/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/pt/encoder-decoder-base64-online/index.md))
- Nederlands (nl): [Base64 encoder en decoder](https://acrafto.com/nl/base64-encoder-decoder/) ([Markdown](https://acrafto.com/nl/base64-encoder-decoder/index.md))
- Polski (pl): [Koder i dekoder Base64](https://acrafto.com/pl/koder-dekoder-base64-online/) ([Markdown](https://acrafto.com/pl/koder-dekoder-base64-online/index.md))
- Română (ro): [Base64 encoder și decoder](https://acrafto.com/ro/codor-decodor-base64/) ([Markdown](https://acrafto.com/ro/codor-decodor-base64/index.md))
- Magyar (hu): [Base64 kódoló és dekódoló](https://acrafto.com/hu/base64-kodolo-dekodolo-online/) ([Markdown](https://acrafto.com/hu/base64-kodolo-dekodolo-online/index.md))
- Ελληνικά (el): [Κωδικοποίηση και αποκωδικοποίηση Base64](https://acrafto.com/el/base64-encoder-decoder/) ([Markdown](https://acrafto.com/el/base64-encoder-decoder/index.md))
- Български (bg): [Base64 енкодер и декодер](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/) ([Markdown](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/index.md))
- Hrvatski (hr): [Base64 koder i dekoder](https://acrafto.com/hr/base64-koder-dekoder/) ([Markdown](https://acrafto.com/hr/base64-koder-dekoder/index.md))
- Slovenščina (sl): [Base64 kodirnik in dekodirnik](https://acrafto.com/sl/base64-kodirnik-dekodirnik/) ([Markdown](https://acrafto.com/sl/base64-kodirnik-dekodirnik/index.md))
- Eesti (et): [Base64 kodeerija ja dekodeerija](https://acrafto.com/et/base64-teisendaja/) ([Markdown](https://acrafto.com/et/base64-teisendaja/index.md))
- Latviešu (lv): [Base64 kodētājs un dekodētājs](https://acrafto.com/lv/base64-kodetajs-dekodetajs/) ([Markdown](https://acrafto.com/lv/base64-kodetajs-dekodetajs/index.md))
- Lietuvių (lt): [Base64 koduotuvas ir dekoduotuvas](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/) ([Markdown](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/index.md))
- Svenska (sv): [Base64 encode och decode](https://acrafto.com/sv/base64-kodare-avkodare-online/) ([Markdown](https://acrafto.com/sv/base64-kodare-avkodare-online/index.md))
- Dansk (da): [Base64 encoder og dekoder](https://acrafto.com/da/base64-encoder-dekoder-online/) ([Markdown](https://acrafto.com/da/base64-encoder-dekoder-online/index.md))
- Suomi (fi): [Base64-kooderi ja -dekooderi](https://acrafto.com/fi/base64-kooderi-dekooderi/) ([Markdown](https://acrafto.com/fi/base64-kooderi-dekooderi/index.md))
- Norsk (no): [Base64-enkoder og -dekoder](https://acrafto.com/no/base64-enkoder-dekoder/) ([Markdown](https://acrafto.com/no/base64-enkoder-dekoder/index.md))
- Українська (uk): [Base64 кодер і декодер](https://acrafto.com/uk/base64-koder-dekoder-onlajn/) ([Markdown](https://acrafto.com/uk/base64-koder-dekoder-onlajn/index.md))
- Русский (ru): [Base64 кодировщик и декодировщик](https://acrafto.com/ru/base64-koder-dekoder/) ([Markdown](https://acrafto.com/ru/base64-koder-dekoder/index.md))
- Српски (sr): [Base64 enkoder i dekoder](https://acrafto.com/sr/base64-enkoder-dekoder-online/) ([Markdown](https://acrafto.com/sr/base64-enkoder-dekoder-online/index.md))
- Македонски (mk): [Base64 енкодер и декодер](https://acrafto.com/mk/base64-converter/) ([Markdown](https://acrafto.com/mk/base64-converter/index.md))
- Bosanski (bs): [Base64 koder i dekoder](https://acrafto.com/bs/base64-koder-dekoder/) ([Markdown](https://acrafto.com/bs/base64-koder-dekoder/index.md))
- Shqip (sq): [Base64 kodues dhe dekodues](https://acrafto.com/sq/kodues-dekodues-base64-online/) ([Markdown](https://acrafto.com/sq/kodues-dekodues-base64-online/index.md))
- Türkçe (tr): [Base64 kodlayıcı ve çözücü](https://acrafto.com/tr/base64-kodlayici-cozucu-online/) ([Markdown](https://acrafto.com/tr/base64-kodlayici-cozucu-online/index.md))
- 日本語 (ja): [Base64エンコード・デコード](https://acrafto.com/ja/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ja/base64-encoder-decoder/index.md))
- 한국어 (ko): [Base64 인코딩 디코딩](https://acrafto.com/ko/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ko/base64-encoder-decoder/index.md))
- العربية (ar): [ترميز وفك ترميز Base64](https://acrafto.com/ar/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ar/base64-encoder-decoder/index.md))
- हिन्दी (hi): [Base64 एन्कोडर और डिकोडर](https://acrafto.com/hi/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/hi/base64-encoder-decoder-online/index.md))
- Bahasa Indonesia (id): [Base64 encode dan decode](https://acrafto.com/id/konverter-base64-online/) ([Markdown](https://acrafto.com/id/konverter-base64-online/index.md))
- Tiếng Việt (vi): [Mã hóa và giải mã Base64](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/) ([Markdown](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/index.md))
- עברית (he): [קידוד ופענוח Base64](https://acrafto.com/he/base64-encoder-decoder/) ([Markdown](https://acrafto.com/he/base64-encoder-decoder/index.md))
