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

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

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

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

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

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

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

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

ตัวสร้าง 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 รวมกับข้อความเข้ารหัส

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