ตัวเข้ารหัสและถอดรหัส 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 ตัวเข้ารหัสจะเพิ่มให้เสมอ และตัวถอดรหัสจะนำออกโดยอัตโนมัติหากมีอยู่ คุณสามารถวางสตริงที่ไม่มีตัวคั่นได้เช่นกัน

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

ตัวเข้ารหัสไฟล์ Base64

เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด

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

เข้ารหัสข้อความ UTF-8 หรือไบต์เลขฐานสิบหก และถอดรหัส Base58 อย่างปลอดภัยด้วยชุดอักขระ Bitcoin, Ripple หรือ Flickr

เครื่องมือเข้ารหัสซีซาร์

เข้ารหัสและถอดรหัสข้อความด้วยรหัสซีซาร์ เลื่อนได้ตั้งแต่ 1-25 รองรับ ROT13 เป็นกรณีพิเศษ และคงเครื่องหมายวรรคตอนกับตัวพิมพ์ใหญ่-เล็กไว้เหมือนเดิม

ตัวสร้าง bcrypt

สร้าง bcrypt hash จากรหัสผ่าน plaintext ปรับ cost factor ได้ตั้งแต่ 4 ถึง 13 ใช้ร่วมกับ Laravel, Django, Node และ PHP ได้

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

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

เข้ารหัส / ถอดรหัส AES

เข้ารหัสและถอดรหัสข้อความความเสี่ยงต่ำด้วย AES cipher ของ OpenSSL passphrase จะถูก hash ด้วย SHA-256 และผลลัพธ์ Base64 มี IV รวมกับข้อความเข้ารหัส

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