Base45 Encoder/Decoder
Encode and decode data in Base45, the format used in EU digital COVID certificates so they fit inside QR codes.
Base45
—
Why the EU certificate picked Base45
You scanned an EU digital COVID certificate, saw a wall of characters starting with HC1: and wondered what encoding that was. Or you are reading RFC 9285 and want to watch the alphabet work on your own input instead of pulling in a library. This page covers the bottom layer: type text, get the matching Base45 string, refreshed on every keystroke.
The algorithm chews through the input two bytes at a time. Each pair becomes a 16-bit value (a times 256 plus b) written as three base-45 digits, least significant first. A leftover single byte at the end emits two digits instead. The alphabet holds 45 symbols: 0-9, A-Z, space and $%*+-./: — precisely the QR alphanumeric table. Type AB and you get BB8, the test vector printed in the RFC itself.
Base45 emits more characters than Base64 does (three per two bytes versus four per three) and still yields a smaller QR, because alphanumeric mode packs each character into roughly 5.5 bits instead of 8. Two honest limits: this page only encodes, even though the tool description mentions decoding, and the output is not a valid certificate — a real DCC wraps CBOR, a COSE signature, zlib and the HC1: prefix around the payload. Everything runs in your browser.
Frequently asked questions
Can I decode Base45 here?
Why not just use Base64 inside a QR code?
Can I build an EU certificate with this?
Related Tools
INI to TOML Converter
Converts an INI file (with [section] headers and key=value) to TOML — close formats with minor adjustments.
Dog Age in Human Years
Convert your dog's age into human years using the science-based AVMA formula. Find your dog's real age by size and understand its life stage.
CSV to JSON
Convert CSV to JSON. The first row becomes object keys, the rest become array items. Supports separators , ; and \t. Auto-detects numbers and booleans. Everything in your browser.
JSON to C# Class
Convert JSON to a C# class with auto-implemented properties. Detects primitive types, lists, arrays and nested objects. Useful for .NET/Unity. Everything in your browser.
MIDI Number to Note Converter
Convert a MIDI note number (0 to 127) into the matching musical note with octave (e.g. 60 = C4). Handy for programming synths and virtual instruments.
Markdown → Org-mode
Basic Markdown to Org-mode converter: asterisk headings (* ** ***), lists, links and #+BEGIN_SRC code blocks.