วิธีใช้งาน
- เลือก “เข้ารหัส” เพื่อแปลงข้อความหรือไบต์เป็น basE91 หรือเลือก “ถอดรหัส” เพื่อแปลง basE91 กลับเป็นข้อมูล
- พิมพ์หรือวางอินพุต หรือคลิก “เปิดไฟล์” สำหรับไบต์ดิบ ให้ตั้ง “รูปแบบอินพุต” เป็น “เลขฐานสิบหก”
- ผลลัพธ์จะอัปเดตทันทีขณะที่คุณพิมพ์ เมื่อถอดรหัส ให้ตั้ง “รูปแบบเอาต์พุต” เป็น “ข้อความ” หรือ “เลขฐานสิบหก”
- กด “คัดลอก” เพื่อคัดลอกผลลัพธ์ หรือ “ดาวน์โหลด” เพื่อบันทึกเป็นไฟล์
basE91 คืออะไร
basE91 คือการเข้ารหัสข้อมูลไบนารีเป็นข้อความที่ออกแบบโดย Joachim Henke โดยใช้อักขระ 91 ตัวจากอักขระ ASCII ที่พิมพ์ได้ 95 ตัว คือทุกตัวยกเว้นช่องว่าง อะพอสทรอฟี ' ยัติภังค์ - และแบ็กสแลช \
basE91 ไม่ได้ทำงานกับบล็อกไบต์ขนาดคงที่ ตัวเข้ารหัสจะสะสมบิตของอินพุตไว้ในบัฟเฟอร์แล้วดึงออกมาครั้งละ 13 บิต หากค่า 13 บิตนั้นมากกว่า 88 จะเขียนเป็นอักขระสองตัว หากมีค่า 88 หรือน้อยกว่า จะดึงบิตที่ 14 มาด้วย ซึ่งยังใส่ได้พอดี เพราะอักขระฐาน 91 สองตัวแทนค่าได้ 91 × 91 = 8281 ค่า ข้อมูลทุก 13 หรือ 14 บิตจึงกลายเป็นอักขระ 2 ตัวพอดี
ผลคือขนาดเพิ่มขึ้นไม่เกินประมาณ 23% และลดลงได้ถึงประมาณ 14% สำหรับข้อมูลที่มีไบต์ศูนย์เรียงกันยาว ๆ ส่วนข้อมูลสุ่มหรือข้อมูลที่บีบอัดแล้วจะได้ผลใกล้กับค่าสูงสุด
basE91 เทียบกับการเข้ารหัสอื่น
| การเข้ารหัส | จำนวนอักขระ | ขนาดเอาต์พุต |
|---|---|---|
| เลขฐานสิบหก | 16 | 2 × อินพุต |
| Base58 | 58 | ประมาณ 1.37 × อินพุต |
| Base64 | 64 | 1.33 × อินพุต |
| Base85 / Ascii85 | 85 | 1.25 × อินพุต |
| basE91 | 91 | ประมาณ 1.14 ถึง 1.23 × อินพุต |
หากต้องการเปรียบเทียบความยาวเอาต์พุตจริงของข้อมูลของคุณ ให้พิมพ์ลงในหน้า การเข้ารหัสทั้งหมด
สิ่งที่ควรทราบ
- การ escape ชุดตัวอักษรมีเครื่องหมายอัญประกาศคู่
"ซึ่งต้อง escape ใน JSON และในสตริงลิเทอรัลส่วนใหญ่ และมี<,>และ&ซึ่งต้อง escape ใน HTML และ XML นอกจากนี้ basE91 ไม่ปลอดภัยสำหรับ URL - ถอดรหัสทั้งสตริง เนื่องจากบิตต่อเนื่องข้ามขอบเขตของอักขระ ส่วนที่ตัดมาจากกลางสตริง basE91 จึงถอดรหัสแยกเดี่ยว ๆ ไม่ได้
- การรองรับ basE91 ไม่ใช่มาตรฐานของ IETF ผู้พัฒนาเผยแพร่การใช้งานอ้างอิงในภาษา C และภาษาอื่น ๆ และมีการพอร์ตไปยังแพลตฟอร์มส่วนใหญ่ เช่น แพ็กเกจ
base91สำหรับ Python
ข้อกำหนด
| ชุดตัวอักษร | อักขระ ASCII ที่พิมพ์ได้ 91 ตัว |
|---|---|
| ขนาดเอาต์พุต | ประมาณ 123% |
| แพดดิง | ไม่มี |
| มาตรฐาน | basE91 (Joachim Henke) |
| แยกตัวพิมพ์เล็ก-ใหญ่ | ใช่ |
ตัวอย่าง
| อินพุต (UTF-8) | เอาต์พุต |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
คำถามที่พบบ่อย
basE91 มีขนาดเล็กกว่า Base64 หรือไม่
ใช่ Base64 เพิ่มขนาด 33% เสมอ ขณะที่ basE91 เพิ่มไม่เกินประมาณ 23% และเพิ่มน้อยกว่านั้นสำหรับข้อมูลที่มีไบต์ศูนย์จำนวนมาก สำหรับไฟล์ขนาด 1 MB จะประหยัดได้ประมาณ 100 KB
basE91 ใช้อักขระใดบ้าง
A-Z และ a-z ตัวเลข 0-9 และสัญลักษณ์ !#$%&()*+,./:;<=>?@[]^_`{|}~" โดยไม่ใช้ช่องว่าง อะพอสทรอฟี ยัติภังค์ และแบ็กสแลชทำไมจึงเขียนว่า basE91
เป็นการสะกดชื่อตามแบบที่ผู้พัฒนาใช้ basE91 และ Base91 หมายถึงการเข้ารหัสเดียวกัน และหน้านี้ใช้อัลกอริทึมตามต้นฉบับ
อักขระช่องว่างทำให้การถอดรหัสผิดพลาดหรือไม่
ไม่ทำให้ผิดพลาด ช่องว่างและการขึ้นบรรทัดใหม่ไม่ได้อยู่ในชุดตัวอักษร ตัวถอดรหัสในหน้านี้จึงละเว้นอักขระเหล่านี้ คุณวางข้อความ basE91 ที่ตัดบรรทัดไว้ได้โดยตรง