วิธีใช้งาน
- เลือก “เข้ารหัส” หรือ “ถอดรหัส” ที่ด้านบนของเครื่องมือ
- พิมพ์หรือวางข้อความ หรือคลิก “เปิดไฟล์” เพื่อเข้ารหัสไฟล์ใดก็ได้
- ปรับ “รูปแบบ” (มาตรฐานหรือปลอดภัยสำหรับ URL) “แพดดิง” “ตัดบรรทัด” หรือ “การเข้ารหัสอักขระ” ได้ตามต้องการ ผลลัพธ์จะอัปเดตทันทีขณะที่คุณพิมพ์
- กด “คัดลอก” หรือ “ดาวน์โหลด” เพื่อรับผลลัพธ์ หรือกดปุ่ม “สลับอินพุตและเอาต์พุต” เพื่อส่งผลลัพธ์กลับไปแปลงในทิศทางตรงกันข้าม
Base64 คืออะไร
Base64 คือการเข้ารหัสที่แปลงข้อมูลไบนารีเป็นข้อความ โดยแทนลำดับไบต์ใด ๆ ด้วยอักขระ ASCII ที่พิมพ์ได้ 64 ตัว ได้แก่ A-Z a-z 0-9 + และ / และใช้ = เป็นแพดดิง วิธีนี้ทำให้ข้อมูลไบนารี เช่น รูปภาพ คีย์ หรือไฟล์บีบอัด ส่งผ่านระบบที่ออกแบบมาสำหรับข้อความได้อย่างปลอดภัย เช่น อีเมล JSON XML URL และ HTML
ตัวเข้ารหัสจะอ่านอินพุตครั้งละสามไบต์ (24 บิต) แล้วแบ่งออกเป็นสี่กลุ่ม กลุ่มละ 6 บิต ค่า 6 บิตแต่ละค่าซึ่งอยู่ระหว่าง 0 ถึง 63 จะใช้เลือกอักขระหนึ่งตัวจากชุดตัวอักษร หากความยาวของอินพุตไม่ใช่พหุคูณของสาม กลุ่มสุดท้ายจะถูกเติมด้วยเครื่องหมาย = หนึ่งหรือสองตัว ผลลัพธ์ Base64 จึงมีขนาดใหญ่กว่าข้อมูลต้นฉบับประมาณ 33% เสมอ
Base64 เป็นเพียงการเข้ารหัสรูปแบบข้อมูล (encoding) ไม่ใช่การเข้ารหัสลับ (encryption) ทุกคนสามารถถอดรหัสได้ ดังนั้นอย่าใช้ Base64 เพื่อซ่อนรหัสผ่านหรือข้อมูลลับ
Base64 กับ Base64URL
Base64 มาตรฐานใช้ + และ / ซึ่งมีความหมายพิเศษใน URL และชื่อไฟล์ Base64URL ที่กำหนดไว้ใน RFC 4648 หัวข้อ 5 จะแทนที่อักขระทั้งสองด้วย - และ _ และมักละแพดดิงไว้ Base64URL ถูกใช้ใน JSON Web Token, OAuth และทุกที่ที่ต้องใส่ค่าไว้ใน URL ตัวถอดรหัสในหน้านี้รับได้ทั้งสองรูปแบบโดยอัตโนมัติ
| Base64 มาตรฐาน | Base64URL | |
|---|---|---|
| อักขระของค่า 62 และ 63 | + / | - _ |
| แพดดิง | ต้องมี = | ไม่บังคับ และมักละไว้ |
| ใช้ใน URL และชื่อไฟล์ได้อย่างปลอดภัย | ไม่ได้ | ได้ |
| การใช้งานทั่วไป | อีเมล (MIME), data URI, JSON, คีย์ PEM | JWT, OAuth, พารามิเตอร์ใน URL |
การใช้งาน Base64 ที่พบบ่อย
- ไฟล์แนบในอีเมล MIME เข้ารหัสไฟล์แนบเป็น Base64 และตัดบรรทัดทุก 76 อักขระ ใช้ตัวเลือก “ตัดบรรทัด” เพื่อสร้างรูปแบบนี้
- การฝังรูปภาพและไฟล์ Data URI ช่วยใส่รูปภาพขนาดเล็ก ฟอนต์ หรือไอคอนลงใน HTML และ CSS ได้โดยตรง ดู แปลงรูปภาพเป็น Base64 และ แปลง Base64 เป็นรูปภาพ
- API และการตั้งค่า JSON ไม่มีชนิดข้อมูลไบนารี API จึงส่งไฟล์ ลายเซ็น และคีย์ในรูปสตริง Base64 นอกจากนี้ Kubernetes Secret ก็จัดเก็บค่าเป็น Base64 เช่นกัน
- การยืนยันตัวตน HTTP Basic Authentication ส่ง
username:passwordในรูป Base64 และ JSON Web Token ประกอบด้วย Base64URL สามส่วน - ใบรับรองและคีย์ ไฟล์ PEM คือข้อมูล DER ที่เข้ารหัสเป็น Base64 และตัดบรรทัดทุก 64 อักขระ
Base64 ในภาษาโปรแกรมต่าง ๆ
| ภาษา | เข้ารหัส | ถอดรหัส |
|---|---|---|
| JavaScript (เบราว์เซอร์) | btoa(binaryString) | atob(base64) |
| Node.js | Buffer.from(str).toString('base64') | Buffer.from(b64, 'base64').toString() |
| Python | base64.b64encode(data) | base64.b64decode(data) |
| PHP | base64_encode($str) | base64_decode($b64) |
| Java | Base64.getEncoder().encodeToString(bytes) | Base64.getDecoder().decode(b64) |
| C# | Convert.ToBase64String(bytes) | Convert.FromBase64String(b64) |
| Go | base64.StdEncoding.EncodeToString(b) | base64.StdEncoding.DecodeString(s) |
| เชลล์ | base64 file.bin | base64 -d file.txt |
ในเบราว์เซอร์ btoa รับเฉพาะอักขระที่มีค่าไม่เกิน U+00FF หากต้องการเข้ารหัสข้อความ Unicode เช่น ภาษาไทย ต้องแปลงเป็นไบต์ UTF-8 ก่อน เช่น ใช้ TextEncoder หรือใช้เครื่องมือนี้ซึ่งเข้ารหัสข้อความเป็น UTF-8 โดยค่าเริ่มต้น
มากกว่า Base64
Base64.is ยังครอบคลุมการเข้ารหัสอื่น ๆ ในตระกูล Base-N ได้แก่ Base32, Base58, Base62, Base85, Ascii85, basE91, Base45, เลขฐานสิบหก และ เลขฐานสอง หากไม่แน่ใจว่าสตริงใช้การเข้ารหัสแบบใด ลองใช้ เครื่องมือตรวจหาการเข้ารหัส หรือเปรียบเทียบทุกแบบพร้อมกันด้วย การเข้ารหัสทั้งหมด
ข้อกำหนด
| ชุดตัวอักษร | A-Z a-z 0-9 + / |
|---|---|
| ขนาดเอาต์พุต | 4 อักขระต่อ 3 ไบต์ (ประมาณ 133%) |
| แพดดิง | เติม = จนความยาวเป็นพหุคูณของ 4 |
| มาตรฐาน | RFC 4648 หัวข้อ 4 |
| แยกตัวพิมพ์เล็ก-ใหญ่ | ใช่ |
ตัวอย่าง
| อินพุต (UTF-8) | เอาต์พุต |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
คำถามที่พบบ่อย
ข้อมูลของฉันถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่
ไม่มีการอัปโหลด การเข้ารหัสและถอดรหัสทำงานภายในเบราว์เซอร์ของคุณทั้งหมดด้วย JavaScript ข้อความและไฟล์ที่คุณป้อนจะไม่ออกจากอุปกรณ์ของคุณ และเครื่องมือยังใช้งานได้แบบออฟไลน์หลังจากโหลดหน้าเว็บเสร็จแล้ว
ทำไมข้อความที่ถอดรหัสแล้วจึงอ่านไม่ออก
เครื่องหมายเท่ากับที่ท้ายสตริงหมายถึงอะไร
เครื่องหมายนี้คือแพดดิง Base64 ทำงานเป็นบล็อกละสี่อักขระ และใช้ = เติมบล็อกสุดท้ายเมื่อความยาวของอินพุตไม่ใช่พหุคูณของสามไบต์ = หนึ่งตัวหมายความว่าบล็อกสุดท้ายเข้ารหัสสองไบต์ ส่วน = สองตัวหมายความว่าบล็อกนั้นเข้ารหัสเพียงหนึ่งไบต์
ข้อมูลจะมีขนาดใหญ่ขึ้นเท่าใดหลังเข้ารหัส
Base64 แปลงทุก 3 ไบต์เป็น 4 อักขระ เอาต์พุตจึงใหญ่กว่าอินพุตประมาณ 33% และจะมีอักขระขึ้นบรรทัดใหม่เพิ่มขึ้นอีกหากคุณเปิดการตัดบรรทัด
Base64 เป็นการเข้ารหัสลับหรือไม่
ไม่ใช่ Base64 เพียงเปลี่ยนรูปแบบการแสดงข้อมูล ไม่มีคีย์ และทุกคนถอดรหัสได้ หากต้องการปกป้องข้อมูลสำคัญ ให้ใช้การเข้ารหัสลับจริง เช่น AES หรือ TLS