ตัวแปลง Base64 / ถอดรหัส Base64 ออนไลน์

0 chars
0 chars

คุณต้องการแปลงข้อความที่อ่านได้เป็นรูปแบบ 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 dXppdmF0ZWw6aGVzbG8= เบื้องหลังโค้ดนี้คือชื่อผู้ใช้และรหัสผ่านที่เชื่อมต่อกันในรูปแบบ uživatel:heslo เครื่องมือของเราช่วยให้คุณสร้างหรือตรวจสอบส่วนหัวเหล่านี้ได้อย่างง่ายดาย

2. JSON Web Tokens (JWT)

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

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

3. Konfigurační soubory (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 และทำงานโดยตรงในเบราว์เซอร์ของคุณ เมื่อหน้าเว็บโหลดเสร็จ คุณสามารถตัดการเชื่อมต่ออินเทอร์เน็ตได้ และเครื่องมือจะยังคงทำงานอยู่ ข้อมูลของคุณจะไม่ถูกส่งไปยังที่ใด