Base45 Encoder & Decoder
Convert text to and from Base45, the compact encoding (RFC 9285) used in QR codes such as the EU Digital COVID Certificate. Text is processed as UTF-8 bytes, and decoding validates the alphabet and value ranges so malformed input is flagged. Everything runs locally in your browser — nothing is uploaded.
How to use
- Choose encode (text to Base45) or decode (Base45 to text).
- Type or paste your input.
- Copy the converted result from the output box.
Frequently asked questions
- What is Base45?
- Base45 is a binary-to-text encoding defined in RFC 9285. It packs two bytes into three characters from a 45-symbol alphabet, which is efficient to store in QR codes.
- Where is it used?
- Most notably in the EU Digital COVID Certificate and other QR-based systems, where the 45-character alphabet maps well onto QR code alphanumeric mode.
- How are non-ASCII characters handled?
- Text is encoded as UTF-8 first, so accented letters, emoji and CJK characters become their byte sequences and decode back exactly.
- What happens with invalid Base45?
- Decoding checks that every character is in the alphabet and that each group is a valid length and value. Invalid input shows an error instead of broken output.
Related tools
Quoted-Printable Encoder & Decoder
Encode text to MIME Quoted-Printable (RFC 2045) or decode it back — handling =XX escapes, soft line breaks, and UTF-8 — entirely in your browser, with 76-character line wrapping on encode.
Base32 Encoder / Decoder
Encode and decode Base32 (RFC 4648), with standard and base32hex variants — useful for TOTP secrets and Crockford-style IDs.
Punycode Converter
Convert internationalized domains between Unicode (`münchen.de`) and Punycode ASCII (`xn--mnchen-3ya.de`).
CBOR Decoder (Diagnostic Notation)
Decode CBOR (RFC 8949) from hex or base64 into readable diagnostic notation — integers, byte and text strings, arrays, maps, tags, floats, simple values, and indefinite-length items — entirely in your browser.
JWK to PEM Converter (and back)
Turn a JWK or a whole JWKS into PEM public keys and back, with the RFC 7638 thumbprint for each — computed in your browser.
JSON Pointer Resolver (RFC 6901)
Resolve an RFC 6901 JSON Pointer like /user/roles/0 against a JSON document, with ~0/~1 escaping and URI-fragment (#/…) support — plus a clickable list of every pointer in the document, in your browser.