Tool for decoding or encoding with Base 92. Base 92 code allows binary information to be stored in ASCII format with minimal data loss.

Base 92 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*!

The 92 character alphabet used in Base 92 is indexed as follows:

(empty) | ~ | 9 | + | 19 | 5 | 29 | ? | 39 | I | 49 | S | 59 | ] | 69 | h | 79 | r | 89 | | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

0 | ! | 10 | , | 20 | 6 | 30 | @ | 40 | J | 50 | T | 60 | ^ | 70 | i | 80 | s | 90 | } |

1 | # | 11 | - | 21 | 7 | 31 | A | 41 | K | 51 | U | 61 | _ | 71 | j | 81 | t | ||

2 | $ | 12 | . | 22 | 8 | 32 | B | 42 | L | 52 | V | 62 | a | 72 | k | 82 | u | ||

3 | % | 13 | / | 23 | 9 | 33 | C | 43 | M | 53 | W | 63 | b | 73 | l | 83 | v | ||

4 | & | 14 | 0 | 24 | : | 34 | D | 44 | N | 54 | X | 64 | c | 74 | m | 84 | w | ||

5 | ' | 15 | 1 | 25 | ; | 35 | E | 45 | O | 55 | Y | 65 | d | 75 | n | 85 | x | ||

6 | ( | 16 | 2 | 26 | < | 36 | F | 46 | P | 56 | Z | 66 | e | 76 | o | 86 | y | ||

7 | ) | 17 | 3 | 27 | = | 37 | G | 47 | Q | 57 | [ | 67 | f | 77 | p | 87 | z | ||

8 | * | 18 | 4 | 28 | > | 38 | H | 48 | R | 58 | \ | 68 | g | 78 | q | 88 | { |

In practice, only 91 signs are used in basic calculations, the 92nd (the tilde `~`) is only used to indicate an empty string.

To encode data in Base 92, cut the data into 13-bit blocks to make 2 base 91 characters (yes 91 and not 92).

__Example:__ `dCode` is written in binary (ASCII) `0110010001000011011011110110010001100101`

Blocking of 13 bits gives `0110010001000,0110110111101,1001000110010,1`

The converting `0110010001000` (base 2) gives ' 3208' (base 10) or 35×91+23. Character 35 of base 91 is `E` and character 23 is `9` whose block is coded `E9`.

Complete the last block with `0` on the right. Pad to 6 bits if the block contained 6 bits or less, otherwise pad to 13 bits.

__Example:__ The last block `1` (length 1 bit) is completed to `100000` (completed over 6 bits) or 32 in base 10, and symbol 32 is `B`.

The complete coded message is `E9H]U3B`

For each pair of characters, note the value of each symbol in the Base 92 alphabet. Multiply the first by 91 and add them.

__Example:__ Decode `9A2?VBWl` by splitting it into pairs `9A` `2?` `VB` `Wl`. The first character `9` has the index `23`, and `A` the code `31`. The calculation is 23×91+31=2124.

For each number obtained, convert it to binary, completing it if necessary on the left to obtain 13 bits.

__Example:__ 2124 in base 10 corresponds to `100001001100` in binary, as this number is only 12 bits, add an initial zero or `0100001001100`

The binary sequence obtained (by concatenation of 13-bit numbers) corresponds to the plain message. If the message was originally encoded in 8-bit ASCII, then each byte corresponds to an ASCII character.

__Example:__ The binary sequence is `01000010,01100001,01110011,01100101,00111001,00110010` or the 6 `Base92` characters

The message is composed of the 91 characters of the Base92 alphabet.

The character `~` appears alone or does not appear.

If the message length is odd, then the last character can only be among the first 64 characters of the alphabet.

Each 13-bit block can encode 2^13 = 8192 values, while 2 base 91 characters encode 91^2=8281 values. The encoding loss is therefore minimized for an alphabet of 91 symbols.

dCode retains ownership of the "Base 92 Encoding" source code. Except explicit open source licence (indicated Creative Commons / free), the "Base 92 Encoding" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "Base 92 Encoding" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and all data download, script, or API access for "Base 92 Encoding" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!

Reminder : dCode is free to use.

The copy-paste of the page "Base 92 Encoding" or any of its results, is allowed (even for commercial purposes) as long as you credit dCode!

Exporting results as a .csv or .txt file is free by clicking on the *export* icon

Cite as source (bibliography):

*Base 92 Encoding* on dCode.fr [online website], retrieved on 2024-06-16,

92,base,base92,ascii,13,binary

https://www.dcode.fr/base92-encoding

© 2024 dCode — El 'kit de herramientas' definitivo para resolver todos los juegos/acertijos/geocaching/CTF.

Feedback