encoding
Encode or decode basE91, a compact printable alphabet. Runs in your browser.
Encode text or files as RFC 9285 Base45, or decode Base45 text back to bytes. Designed for compact use with QR alphanumeric mode.
Runs in your browser — your input is processed on this device and never uploaded.
Enter text or upload a file to encode. To decode, enter the encoded text.
Results appear here.
Base45 writes binary data with 45 characters: the digits, the uppercase letters, the space and $%*+-./:. RFC 9285 defines it to fit the alphanumeric mode of QR codes, which stores exactly those 45 characters more compactly than arbitrary bytes.
A QR code stores Base64 in byte mode, where every character costs 8 bits, so 3 bytes of data take 32 bits. Base45 text fits alphanumeric mode, which packs 2 characters into 11 bits, so 2 bytes of data take about 16.5 bits. The Base45 string is longer, but the code that carries it is smaller.
That is why the EU Digital COVID Certificate encoded its signed CBOR payload as Base45 before drawing the QR code.
Base64 is shorter as text and the right choice anywhere other than a QR code. Base32 is the case-insensitive option for values people read and type. QR Code Generator draws a code from text, such as a Base45 string.
The alphabet includes a space and the characters $%*+-./:, so a Base45 string is not safe to drop into a URL or a shell command without escaping. Inside a QR code, where it belongs, that does not matter.
Warning
Base45 is an encoding, not encryption or compression. Anyone can decode it, and a successful decode says nothing about whether the content is safe or authentic.
Explore tools with similar capabilities.
encoding
Encode or decode basE91, a compact printable alphabet. Runs in your browser.
encoding
Encode bytes as whole-value Base62, or decode Base62 text back to bytes. Choose either supported digit and letter ordering.
encoding
Encode text or uploaded files as Adobe Ascii85, or decode Ascii85 back to binary. It all runs in your browser, so your input stays on the device.
encoding
Encode text or uploaded files as Base64, or decode Base64 text and files back to binary. It all runs in your browser, so your input stays on the device.
Encode bytes with Bitcoin-alphabet Base58 or Base58Check, or decode them back. Supports optional Base58Check version-byte validation.