Base45 Encoder & Decoder

Decode Base45 online or encode UTF-8 text with the RFC 9285 Base45 encoder. This QR-code-oriented binary-to-text encoding runs locally in your browser and is not encryption.

Input
0 chars · 0 bytes
Try:
Result
✓ QR-optimised binary-to-text encoding ✓ Used by EU Digital COVID Certificates ✓ UTF-8 and Unicode support ✓ Client-side processing only
Examples
Encode text to Base45
Input Hello!!
Output %69 VD92EX0

Base45 per RFC 9285; note the space is part of the alphabet.

Decode Base45
Input %69 VD92EX0
Output Hello!!

Decoding restores the original text.

Encode a short Base45 value
Input AB
Output BB8

The two UTF-8 bytes for AB become one three-character Base45 group. This is an RFC 9285 test vector.

Decode another RFC 9285 example
Input UJCLQE7W581
Output base-45

Decoding this Base45 string restores the original lowercase text. The encoded form itself uses only the RFC 9285 Base45 alphabet.

How Base45 encoding works

Base45 is an RFC 9285 binary-to-text encoding. This online Base45 encoder reads the text you enter as UTF-8 bytes, combines each pair of bytes into a number, and represents that number with three characters from a 45-symbol alphabet: 0–9, A–Z, space, and $%*+-./:. A final unpaired byte is written with two characters.

The result is text, not encrypted data. Anyone with a Base45 decoder can recover the original bytes, so do not use Base45 to protect passwords, personal data, or secrets.

Decode Base45 online

To decode Base45, paste the complete value, select decoding, and run the tool. The input must use only the RFC 9285 alphabet, including uppercase letters and any meaningful spaces. Base45 is case-sensitive: lowercase letters are not valid replacements for uppercase ones.

For encoding, enter ordinary text and select encoding. The generated value can be decoded by this tool to check the round trip. Conversion happens locally in your browser; the text and Base45 value are not sent to a server for processing.

If decoding fails, check that the value was not copied with characters changed or removed. A Base45 value cannot have a length that leaves one character after grouping it in threes, and some otherwise valid-looking groups can represent numbers outside the permitted byte range.

Why Base45 is used in QR codes

Base45 was designed to work efficiently with the alphanumeric mode of QR codes. Its alphabet fits that mode, letting a QR code carry the encoded payload more densely than a Base64 string encoded as QR alphanumeric data. The trade-off is that Base45 text is longer than the original byte sequence.

A well-known use is the EU Digital COVID Certificate format: its compressed signed payload is Base45-encoded before it is placed in a QR code. Base45 is only one outer layer of that format; decoding it does not by itself verify a certificate, reveal a human-readable certificate, or validate its signature.

Use Base45 when a specification explicitly calls for RFC 9285 or when preparing a compatible QR-oriented payload. For general web and email data, Base64 is often the more common format.

FAQ

Base45 maps onto the QR code alphanumeric character set, so its output fits QR codes more efficiently than Base64. It is a trade-off: larger strings, but denser QR codes.

No. Base45 is only the outer text encoding of the QR payload. The certificate itself is a CBOR/COSE structure that is compressed and then Base45-encoded for the QR code.

No. Base45 is reversible encoding with no key, password, or secrecy. It only changes how bytes are written as text; anyone can decode the result.

RFC 9285 Base45 uses 45 characters: digits 0–9, uppercase A–Z, a space, and $ % * + - . / :. Lowercase letters, underscores, and characters outside this set are invalid. Spaces can be data, so do not remove them unless you know they were added only for display.

The value may contain an invalid character, have an incomplete length, or include a group that cannot represent one or two bytes under RFC 9285. Paste the complete uppercase value exactly as supplied and preserve meaningful spaces.

No. Encoding and decoding run locally in your browser. The values you enter are not sent to the server for conversion.
Related tools

Binary Converter Online

Convert text into 8-bit binary groups and decode binary bytes back into readable text.

ASCII Converter

Convert ASCII characters and numeric codes for protocol and parser workflows.

JWT Decoder Online

Decode JWT tokens in-browser and inspect header, payload, claims, and expiration data.