วิธีใช้งาน
- พิมพ์หรือวางข้อความลงในช่องอินพุต
- ทุกการเข้ารหัสจะอัปเดตทันทีขณะพิมพ์ ได้แก่ เลขฐานสอง เลขฐานแปด เลขฐานสิบ เลขฐานสิบหก Base32 รูปแบบต่าง ๆ Base36 ถึง Base91 รวมทั้ง uuencode และ xxencode
- เปรียบเทียบเอาต์พุตเพื่อดูว่าแบบใดสั้นที่สุด หรือแบบใดใช้เฉพาะอักขระที่คุณยอมรับได้
- คลิก “คัดลอก” ข้างผลลัพธ์ที่ต้องการ
ทุกการเข้ารหัสจากอินพุตเดียว
การเข้ารหัสแต่ละแบบในหน้านี้แปลงไบต์ชุดเดียวกันเป็นชุดอักขระที่ต่างกัน การดูผลลัพธ์เรียงเทียบกันจึงเป็นวิธีที่เร็วที่สุดในการเลือกการเข้ารหัสสำหรับโปรเจกต์ ระบุสตริงที่พบในล็อกหรือไฟล์ตั้งค่า หรือเรียนรู้ว่าแต่ละรูปแบบต่างกันอย่างไร ข้อความของคุณจะถูกเข้ารหัสเป็นไบต์ UTF-8 ตัวอักษรที่มีเครื่องหมายกำกับจึงนับเป็นสองไบต์ ส่วนอักษรจีนหนึ่งตัวนับเป็นสามไบต์ ทุกอย่างทำงานในเบราว์เซอร์ของคุณ
- ตัวเลขทีละไบต์ เลขฐานสอง เลขฐานแปด และเลขฐานสิบเขียนแต่ละไบต์แยกกัน อ่านง่ายแต่ยาว
- กลุ่มบิต เลขฐานสิบหก, Base32 (รวมถึง Base32hex, Crockford และ z-base-32), Base64 และ Base64URL ให้อักขระแต่ละตัวแทนจำนวนบิตที่คงที่ ความยาวเอาต์พุตจึงขึ้นอยู่กับความยาวอินพุตเท่านั้น
- เลขจำนวนใหญ่ Base36, Base58 และ Base62 มองอินพุตทั้งหมดเป็นจำนวนเต็มขนาดใหญ่ตัวเดียว ความยาวอาจต่างกันหนึ่งอักขระตามค่าของข้อมูล และไบต์ศูนย์ที่นำหน้าจะถูกเก็บไว้เป็นอักขระนำหน้า
- บล็อก Base45 แปลง 2 ไบต์เป็น 3 อักขระ Ascii85, Z85 และ Base85 แปลง 4 ไบต์เป็น 5 อักขระ ส่วน Base91 บรรจุข้อมูล 13 หรือ 14 บิตลงในอักขระแต่ละคู่
- บรรทัด uuencode และ xxencode เป็นรูปแบบเก่าที่ใช้กับอีเมลและ Usenet โดยเขียนข้อมูลเป็นบรรทัด และแต่ละบรรทัดขึ้นต้นด้วยอักขระที่บอกความยาว
เปรียบเทียบขนาดเอาต์พุต
จำนวนอักขระที่แต่ละการเข้ารหัสต้องใช้ต่อไบต์อินพุต และความยาวของค่าขนาด 32 ไบต์ เช่น แฮช SHA-256 หรือคีย์สาธารณะ Ed25519 หลังเข้ารหัส
| การเข้ารหัส | อักขระต่อไบต์ | 32 ไบต์กลายเป็น |
|---|---|---|
| Base16 (เลขฐานสิบหก) | 2.0 | 64 |
| Base32 | 1.6 | 56 (52 หากไม่มีแพดดิง) |
| Base36 | ประมาณ 1.55 | 49 หรือ 50 |
| Base45 | 1.5 | 48 |
| Base58 | ประมาณ 1.37 | 43 หรือ 44 |
| Base62 | ประมาณ 1.34 | 42 หรือ 43 |
| Base64 | ประมาณ 1.33 | 44 (43 หากไม่มีแพดดิง) |
| Base85 | 1.25 | 40 |
| Base91 | ประมาณ 1.23 | 39 หรือ 40 |
การเปลี่ยนจากเลขฐานสิบหกเป็น Base64 ช่วยลดความยาวได้หนึ่งในสาม แต่หากเปลี่ยนต่อจาก Base64 เป็น Base91 จะประหยัดเพิ่มได้อีกเพียงประมาณ 8% เท่านั้น
ควรเลือกการเข้ารหัสแบบใด
เอาต์พุตที่สั้นที่สุดไม่ได้ดีที่สุดเสมอไป Ascii85 อาจมีเครื่องหมายคำพูดและแบ็กสแลช ส่วน Base91 อาจมีเครื่องหมายอัญประกาศคู่ ทั้งสองแบบจึงอาจต้อง escape เมื่อใช้ใน JSON, HTML หรือคำสั่งเชลล์ ควรพิจารณาก่อนว่าสตริงจะถูกนำไปใช้ที่ใด
- URL และชื่อไฟล์: Base64URL, Base58 หรือ Base62
- การอ่านออกเสียงหรือพิมพ์ด้วยมือ: Crockford Base32 หรือ Base58 ซึ่งตัดอักขระที่ดูคล้ายกันออก
- ระบบที่ไม่แยกตัวพิมพ์เล็ก-ใหญ่: เลขฐานสิบหก, Base32 หรือ Base36
- QR code: Base45 ซึ่งใช้เฉพาะอักขระของโหมดตัวอักษรและตัวเลข (alphanumeric) ใน QR code
- ข้อความแบบกะทัดรัดใน PDF, Git หรือ ZeroMQ: Ascii85, Base85 หรือ Z85
- ความเข้ากันได้สูงสุด: Base64 ซึ่งรองรับในแทบทุกภาษาโปรแกรมและทุกแพลตฟอร์ม
คำถามที่พบบ่อย
การเข้ารหัสแบบใดให้เอาต์พุตสั้นที่สุด
ในบรรดาการเข้ารหัสในหน้านี้ Base91 กะทัดรัดที่สุด โดยใช้ประมาณ 1.23 อักขระต่อไบต์ รองลงมาคือ Ascii85, Z85 และ Base85 ที่ 1.25 อักขระต่อไบต์ ส่วน Base64 ใช้ประมาณ 1.33 แต่ได้รับการรองรับกว้างขวางกว่ามาก จึงมักเป็นตัวเลือกเริ่มต้น
ทำไมผลลัพธ์ Base58 และ Base62 จึงยาวไม่เท่ากันแม้อินพุตมีขนาดเท่ากัน
ทั้งสองแบบแปลงอินพุตทั้งหมดเป็นตัวเลขขนาดใหญ่ตัวเดียว ความยาวจึงขึ้นอยู่กับค่าของตัวเลข ไม่ใช่แค่ขนาดของข้อมูล และไบต์ศูนย์ที่นำหน้าแต่ละไบต์ยังเพิ่มอักขระนำหน้าอีกหนึ่งตัว ส่วนเลขฐานสิบหก, Base32 และ Base64 ให้ความยาวเท่ากันเสมอเมื่อจำนวนไบต์เท่ากัน
ถอดรหัสสตริงในหน้านี้ได้หรือไม่
ทำไมเอาต์พุตเลขฐานสองจึงยาวมาก
เลขฐานสองเขียน 8 หลักสำหรับทุกไบต์ และยังมีตัวคั่นเพิ่มเข้ามา จึงยาวอย่างน้อยสี่เท่าของเลขฐานสิบหก รูปแบบนี้มีไว้สำหรับดูบิตแต่ละบิต ไม่ได้มีไว้สำหรับจัดเก็บหรือส่งข้อมูล
ข้อความของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่
ไม่ถูกส่ง การเข้ารหัสทั้งหมดคำนวณด้วย JavaScript ในเบราว์เซอร์ของคุณ และข้อความจะไม่ออกจากอุปกรณ์ของคุณ