Tool for encryption/decryption in Base91, an encoding based on 91 ASCII characters that limits the size of the encoded data.
Base91 Encoding - dCode
Tag(s) : Character Encoding
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
Base91 (or BasE91) is a method of encoding binary data into printable characters developed to facilitate transmission via text channels (email, messaging, etc.).
Base91 is an alternative to Base64, using an expanded alphabet of 91 printable ASCII characters ranging from 0x21 to 0x7E, excluding the dash - (0x2D), the backslash \ (0x5C), and the apostrophe ' (0x27).
Base91 encoding consists of grouping the bits of binary data into 13-bit blocks (i.e., 2^13 = 8192 possible values).
Each block is encoded as two symbols from the 91-character alphabet (91² = 8281 possible combinations).
Example: The string dCode is encoded as xJ,Jc,A in Base91.
The standard encoding table is:
| 0 | A | 1 | B | 2 | C | 3 | D | 4 | E | 5 | F | 6 | G | 7 | H | 8 | I | 9 | J | 10 | K | 11 | L | 12 | M |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13 | N | 14 | O | 15 | P | 16 | Q | 17 | R | 18 | S | 19 | T | 20 | U | 21 | V | 22 | W | 23 | X | 24 | Y | 25 | Z |
| 26 | a | 27 | b | 28 | c | 29 | d | 30 | e | 31 | f | 32 | g | 33 | h | 34 | i | 35 | j | 36 | k | 37 | l | 38 | m |
| 39 | n | 40 | o | 41 | p | 42 | q | 43 | r | 44 | s | 45 | t | 46 | u | 47 | v | 48 | w | 49 | x | 50 | y | 51 | z |
| 52 | 0 | 53 | 1 | 54 | 2 | 55 | 3 | 56 | 4 | 57 | 5 | 58 | 6 | 59 | 7 | 60 | 8 | 61 | 9 | 62 | ! | 63 | # | 64 | $ |
| 65 | % | 66 | & | 67 | ( | 68 | ) | 69 | * | 70 | + | 71 | , | 72 | . | 73 | / | 74 | : | 75 | ; | 76 | < | 77 | = |
| 78 | > | 79 | ? | 80 | @ | 81 | [ | 82 | ] | 83 | ^ | 84 | _ | 85 | ` | 86 | { | 87 | | | 88 | } | 89 | ~ | 90 | " |
Base91 decoding involves performing the inverse operation of encoding.
Each pair of symbols is converted into a 13-bit integer value.
The bits are then reassembled to reconstruct the original bytes, which can be read according to the original text's encoding (ASCII, UTF-8, etc.).
Example: The message encoded in Base 91 RJ}G%wA is decoded in DCODE.
Base91 provides a more compact representation of data than Base64 while remaining compatible with text communication channels.
It is therefore useful for optimizing the size of encoded messages in contexts where every byte counts (SMS transmission, text storage, etc.).
Joachim Henke claims it was invented in 2005, see here
dCode retains ownership of the "Base91 Encoding" source code. Any algorithm for the "Base91 Encoding" algorithm, applet or snippet or script (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or any "Base91 Encoding" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) or any database download or API access for "Base91 Encoding" or any other element are not public (except explicit open source licence). Same with the download for offline use on PC, mobile, tablet, iPhone or Android app.
Reminder: dCode is an educational and teaching resource, accessible online for free and for everyone.
The content of the page "Base91 Encoding" and its results may be freely copied and reused, including for commercial purposes, provided that dCode.fr is cited as the source (Creative Commons CC-BY free distribution license).
Exporting the results is free and can be done simply by clicking on the export icons ⤓ (.csv or .txt format) or ⧉ (copy and paste).
To cite dCode.fr on another website, use the link:
In a scientific article or book, the recommended bibliographic citation is: Base91 Encoding on dCode.fr [online website], retrieved on 2025-10-29,