ตัวเข้ารหัสและถอดรหัส Base85

Base85 อัดสี่ไบต์ให้เหลือห้าอักขระ ASCII ซึ่งแน่นกว่าอัตราส่วน “3 ต่อ 4” ของ Base64 เพราะใช้ชุดอักขระ 85 ตัวแทนที่จะเป็น 64 ตัว เครื่องมือนี้ใช้รูปแบบ Adobe Ascii85 ซึ่งเป็นรูปแบบที่อยู่ในไฟล์ PostScript และ PDF ตัวเข้ารหัสจะครอบผลลัพธ์ด้วยตัวคั่น <~ และ ~> เสมอ ส่วนตัวถอดรหัสรับข้อมูลที่มีหรือไม่มีตัวคั่นก็ได้

วิธีแปลง Base85 (Ascii85)

  1. 1

    เลือกเข้ารหัสหรือถอดรหัส

    การเข้ารหัสแปลงไบต์ดิบเป็น Ascii85 ส่วนการถอดรหัสแปลงสตริง Ascii85 กลับเป็นไบต์

  2. 2

    วางข้อความของคุณ

    วางไบต์ที่ต้องการเข้ารหัสหรือสตริง Ascii85 ที่ต้องการถอดรหัสลงในช่องป้อนข้อมูล

  3. 3

    ตัวเข้ารหัสแบ่งทีละ 4 ไบต์

    ทุกบล็อก 4 ไบต์จะกลายเป็นสตริง Base85 ขนาด 5 อักขระ บล็อกสุดท้ายจะถูกเติมเต็มแล้วตัดส่วนเกินที่ท้ายออก

  4. 4

    คัดลอกผลลัพธ์

    ผลลัพธ์ Ascii85 จะครอบด้วยตัวคั่น `<~` และ `~>` วางกลับเข้าไปอีกครั้งเพื่อถอดรหัส ตัวคั่นจะถูกนำออกโดยอัตโนมัติ

เปรียบเทียบขนาดที่เพิ่มขึ้น

การเข้ารหัส อักขระต่อ 4 ไบต์ เพิ่มขึ้นเทียบกับไบนารี
Hex 8 +100%
Base64 5.33 (ปัดขึ้นเป็น 8 เมื่อมีการเติมเต็ม) +37%
Base85 5 +25%
ไบนารีดิบ 4 0

ดังนั้นข้อมูลไบนารี 1 MB จะกลายเป็น 1.25 MB ใน Base85, 1.33 MB ใน Base64 และ 2 MB ใน hex

ชุดอักขระของ Ascii85

Ascii85 (Adobe): อักขระตั้งแต่ ! ถึง u (33–117 ใน ASCII) และใช้ z เป็นตัวย่อสำหรับไบต์ศูนย์สี่ตัว เป็นการเข้ารหัสมาตรฐานในสตรีม PostScript และ PDF โดยครอบด้วย <~...~>

Z85 (ZeroMQ) และชุดอักขระ RFC 1924 สำหรับ IPv6 เป็นการกำหนดอักขระ 85 ตัวเดียวกันในรูปแบบอื่น เครื่องมือนี้ไม่รองรับการเข้ารหัสสองแบบนี้ ดังนั้นสตริงที่เข้ารหัสด้วยรูปแบบเหล่านั้นจะถูกถอดรหัสอย่างผิดพลาดที่นี่

หลักคณิตศาสตร์ทำงานอย่างไร

ทุก 4 ไบต์จะถูกอ่านเป็นจำนวนเต็ม 32 บิตแบบ big-endian ชื่อ N อักขระผลลัพธ์ 5 ตัวคือหลักของ N ในฐาน 85 โดยเรียงจากหลักสูงสุดก่อน 85^5 = 4 437 053 125 ซึ่งมากกว่า 2^32 ดังนั้น 4 ไบต์จึงพอดีกับ 5 อักขระเสมอ

เมื่อใด Ascii85 จึงสำคัญ

เปิดไฟล์ PDF ใดก็ได้ในโปรแกรมแก้ไขข้อความแล้วค้นหา ASCII85Decode Adobe ใช้มันเป็นตัวกรองสำหรับภาพและฟอนต์ที่ฝังไว้ ซึ่งต้องผ่านการส่งแบบ 7 บิต (ระบบเก่าแนวแฟกซ์) การเข้ารหัสเดียวกันนี้ยังปรากฏในไฟล์ PostScript หลายไฟล์และในการส่งไบนารีที่ปลอดภัยสำหรับอีเมล

กรณีพิเศษ

  • บล็อก 4 ไบต์ที่เป็นศูนย์ทั้งหมด: Ascii85 จะเข้ารหัสเป็นอักขระเดียว z แทนที่จะเป็น !!!!!
  • บล็อกสุดท้ายที่ไม่เต็ม: เติมเต็มด้วยไบต์ศูนย์ แล้วตัดจำนวนอักขระผลลัพธ์ที่สอดคล้องกันออกที่ท้าย

คำถามที่พบบ่อย

ในแง่ที่ผลลัพธ์เล็กกว่า ใช่ แต่ในแง่ที่เข้ากันได้ทุกที่ ไม่ใช่ Ascii85 มีอักขระอย่าง <, >, &, " ที่ต้องใส่ตัวหลีกใน XML, JSON และ URL ส่วนเครื่องมือส่วนใหญ่รองรับ Base64 อยู่แล้วโดยพื้นฐาน

ในสตรีม PostScript และ PDF ซึ่งบริเวณที่เข้ารหัสจะถูกกำหนดด้วยตัวคั่น <~ และ ~> โปรแกรมดูและแก้ไข PDF จัดการการเข้ารหัสนี้โดยอัตโนมัติ

ไม่รองรับ รองรับเฉพาะ Adobe Ascii85 เท่านั้น Z85 (ZeroMQ) และชุดอักขระ RFC 1924 สำหรับ IPv6 กำหนดอักขระ 85 ตัวต่างกัน ดังนั้นสตริงที่เข้ารหัสด้วยรูปแบบเหล่านั้นจะถูกถอดรหัสอย่างผิดพลาดที่นี่

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

เครื่องมือที่เกี่ยวข้อง

รหัสแปลงตัวเลขเป็นตัวอักษร

แปลงตัวเลขเป็นตัวอักษรและย้อนกลับด้วยรหัส A=1, B=2 (A1Z26) สำหรับปริศนา คำทาย และเบาะแสในห้องเอสเคปรูม

เครื่องสร้างค่าแฮช MD5

คำนวณค่า checksum แบบ MD5 ของข้อความและไฟล์เพื่อยืนยันความสมบูรณ์ โดยผลลัพธ์จะตรงกับที่ได้จากฟังก์ชัน md5sum และ openssl dgst -md5

เครื่องสร้างพาสเฟรส (Passphrase)

สร้างพาสเฟรสที่จำง่ายจากคำทั่วไปแบบสุ่ม ปรับจำนวนคำ ตัวคั่น การขึ้นต้นด้วยตัวพิมพ์ใหญ่ และตัวเลขต่อท้ายที่เลือกได้

ตัวเข้ารหัสรหัสลับ A1Z26

เข้ารหัสข้อความด้วยรหัสลับ A1Z26 (A=1, B=2, ... Z=26) หรือถอดรหัสลำดับตัวเลขกลับเป็นตัวอักษร พร้อมปรับตัวคั่นได้

เครื่องมือสร้างกุญแจ PGP

สร้างคู่กุญแจ OpenPGP แบบ ASCII armor พร้อมใบรับรองการเพิกถอนด้วย Curve25519, RSA 2048 หรือ RSA 4096

เครื่องมือเข้ารหัส Polybius

เข้ารหัสอักษรละตินเป็นพิกัด Polybius หรือถอดรหัสคู่ตัวเลขที่คั่นด้วยช่องว่าง โดยใช้ตาราง 5×5 แบบคงที่ที่รวม I/J

เครื่องมือนี้มีให้บริการในภาษาอื่น