Logo

MonoCalc

/

Base85 Decoder

Encode/Decode

Base85 Encoded InputASCII85

ASCII85 angle-tilde delimiters (<~ ... ~>) are automatically detected and stripped.

About This Tool

🔓 Base85 Decoder – Decode ASCII85, Z85 & RFC 1924 Strings

The Base85 Decoder reverses Base85 encoding, converting encoded ASCII strings back to their original binary or text form. Base85 encodes every 4 bytes of binary data into 5 printable ASCII characters, achieving roughly 25% overhead — significantly better than Base64's 33%. This decoder handles all three widely-used variants: ASCII85 (Adobe/PostScript), Z85 (ZeroMQ), and RFC 1924.

🧮 How Base85 Decoding Works

Each group of 5 Base85 characters is interpreted as a base-85 number (digits 0–84), yielding a 32-bit unsigned integer. That integer is then split into 4 big-endian bytes. For partial groups at the end of the input, padding characters fill the missing positions, and only the needed bytes are kept.

The core formula for a 5-character group c₀ c₁ c₂ c₃ c₄ is:

n = d₀×85⁴ + d₁×85³ + d₂×85² + d₃×85 + d₄
bytes = [n≫24, (n≫16)&0xFF, (n≫8)&0xFF, n&0xFF]

where dᵢ is the alphabet index of character cᵢ.

📚 Supported Variants

ASCII85 (Adobe)

Uses characters ! through u (ASCII 33–117). Optional <~ and ~> delimiters are auto-stripped. The z shorthand expands to five ! chars (four zero bytes). Used in PDF streams and PostScript files.

Z85 (ZeroMQ)

Uses a URL-friendly character set defined by the ZeroMQ specification. Input length must be a multiple of 5. Commonly used for binary key material and message payloads in ZMQ protocols.

RFC 1924

Defined for compact IPv6 address representation. Uses digits, uppercase, lowercase, and 23 symbols. Less common in practice but useful for encoding large integers and compact binary payloads.

💡 Common Use Cases

  • PDF & PostScript streams — Decode embedded binary payloads (images, fonts, compressed streams) from PDF files.
  • Git binary patches — Git uses ASCII85 to encode binary file diffs in patch format.
  • ZeroMQ messages — Decode Z85-encoded keys and binary message frames from ZMQ applications.
  • Security research — Decode Base85-obfuscated payloads found in malware analysis, CTF challenges, or protocol inspection.
  • General binary embedding — Any protocol or format that uses Base85 to safely transport binary data in text contexts.

🔍 Output Modes

The decoder offers two output modes. UTF-8 Text tries to interpret the decoded bytes as a readable string — ideal when the original data was text. Hex Dump shows the raw bytes in a formatted grid with offsets, hex octets, and an ASCII sidebar — essential for inspecting binary payloads like images or compiled code.

Non-printable bytes
When decoded bytes contain non-printable characters (control codes, null bytes, etc.), the decoder automatically switches to escape notation (\xNN) in text mode and highlights this with a warning. Use hex dump mode for full byte-level inspection.

⚡ Size Efficiency: Base85 vs Base64

Base85 produces approximately 20% smaller encoded text than Base64 for the same binary payload. A 1 MB binary file encodes to ~1.25 MB in Base85 vs ~1.33 MB in Base64. This is because Base85 maps 4 binary bytes to 5 text characters (ratio 5/4 = 1.25), while Base64 maps 3 bytes to 4 characters (ratio 4/3 ≈ 1.33).

🔒 Privacy & Security

All decoding runs entirely in your browser using client-side JavaScript. No encoded input is transmitted to any server. Base85 is not encryption — it is a reversible encoding scheme that provides no confidentiality. For sensitive data, always apply proper encryption (e.g., AES) in addition to encoding.

Frequently Asked Questions

Is the Base85 Decoder free?

Yes, Base85 Decoder is totally free :)

Can I use the Base85 Decoder offline?

Yes, you can install the webapp as PWA.

Is it safe to use Base85 Decoder?

Yes, any data related to Base85 Decoder only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does this Base85 Decoder work?

The decoder processes Base85-encoded text in 5-character groups, converting each group back to 4 bytes of binary data using the reverse of the Base85 encoding algorithm. It supports ASCII85 (with optional angle-tilde delimiters), Z85 (ZeroMQ), and RFC 1924 variants.

What Base85 variants does this decoder support?

Three variants are supported: ASCII85 (Adobe/PostScript), which uses characters from '!' to 'u' with optional <~ ~> delimiters and a 'z' shorthand for zero bytes; Z85 (ZeroMQ), which requires input to be a multiple of 5 characters; and RFC 1924, designed for IPv6 address compaction.

Why is my decoded output showing non-printable characters?

Non-printable characters appear when the original encoded data was binary (e.g., an image, compiled code, or PDF stream) rather than plain text. The decoder will display such bytes in \xNN escape notation and also provide a hex dump for byte-level inspection.

What is the 'z' shorthand in ASCII85 and how is it handled?

In ASCII85, a single 'z' character represents five consecutive zero characters ('!!!!!'), which decode to four zero bytes (0x00 0x00 0x00 0x00). This shorthand reduces the encoded size of data with many zero bytes. This decoder automatically expands 'z' shortcuts during decoding.

Is Base85 decoding secure? Can I use it for sensitive data?

Base85 is an encoding scheme, not encryption. Decoding reverses a simple transformation and provides no confidentiality. Do not rely on Base85 encoding alone to protect sensitive information. All decoding is performed locally in your browser — no data is sent to any server.

What is the maximum input size this decoder supports?

The decoder handles up to approximately 2 MB of encoded Base85 text. For larger payloads, consider splitting the input. The hex dump output is generated for the full decoded binary payload, and you can download the decoded result as a file.