Tool to decode / encode with the Z-Base-32. ZBase32 is a variant of base 32 which is intended to be improved for use and transcription by humans.

Z-Base-32 - 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*!

z-base-32 encoding is a variant of base 32 (standard RFC 3548) proposed by Zooko O'Whielacronx and made to optimize the writing and the reading by the humans. z-base-32 code uses 32 characters `ybndrfg8ejkmcpqxot1uwisza345h769` ie. the 36 alphanumeric characters excluding 4 characters that can be confused with others: `0,l,v,2`. The order of the alphabet is also changed (instead of `abcdefghijklmnopqrstuvwxyz234567`) in order to favor the common letters (vowels) and make the coded messages pronounceable. Also, the superfluous characters `=` appearing at the end of base32 and base64 codes are removed.

The plain message is treated as a binary string.

__Example:__ `Z` is encoded in ASCII (8-bit) `01011010`

The string is divided into 5-bit blocks (supplemented if necessary by `0`).

__Example:__ The split gives the 10 bits `01011,01000` (with two' 0's added at the end)

Each block of 5 bits is then encoded via the alphabet of z-base-32 by its corresponding character:

00000 | y | 00001 | b | 00010 | n | 00011 | d |
---|---|---|---|---|---|---|---|

00100 | r | 00101 | f | 00110 | g | 00111 | 8 |

01000 | e | 01001 | j | 01010 | k | 01011 | m |

01100 | c | 01101 | p | 01110 | q | 01111 | x |

10000 | o | 10001 | t | 10010 | 1 | 10011 | u |

10100 | w | 10101 | i | 10110 | s | 10111 | z |

11000 | a | 11001 | 3 | 11010 | 4 | 11011 | 5 |

11100 | h | 11101 | 7 | 11110 | 6 | 11111 | 9 |

__Example:__ The final coded message is `me`

Decryption by z-base-32 begins with a conversion of characters into binary via the lookup table

y | 00000 | b | 00001 | n | 00010 | d | 00011 |
---|---|---|---|---|---|---|---|

r | 00100 | f | 00101 | g | 00110 | 8 | 00111 |

e | 01000 | j | 01001 | k | 01010 | m | 01011 |

c | 01100 | p | 01101 | q | 01110 | x | 01111 |

o | 10000 | t | 10001 | 1 | 10010 | u | 10011 |

w | 10100 | i | 10101 | s | 10110 | z | 10111 |

a | 11000 | 3 | 11001 | 4 | 11010 | 5 | 11011 |

h | 11100 | 7 | 11101 | 6 | 11110 | 9 | 11111 |

__Example:__ The message `gc3y` corresponds to `00110,01100,11001,00000`

The resulting binary code is then interpreted (depending on the encoding used)

__Example:__ `00110011001100100000` corresponds to the ASCII code of the string `32`

The message is composed only of alphanumeric characters except `0`, `l`, `v` and `2`.

The number `0` can be confused with `o`, the letter `l` is close to the number `1` or even the letter `i`. Likewise for `v` which is close to `u` or `r` (especially in handwriting), same for `2` which has been excluded because of its written resemblance to `z`.

dCode retains ownership of the "Z-Base-32" source code. Except explicit open source licence (indicated Creative Commons / free), the "Z-Base-32" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or the "Z-Base-32" 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 "Z-Base-32" 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 "Z-Base-32" or any of its results, is allowed as long as you cite dCode!

Cite as source (bibliography):

*Z-Base-32* on dCode.fr [online website], retrieved on 2023-02-08,

zbase32,zbase,base,32,zooko

https://www.dcode.fr/z-base-32-encoding

© 2023 dCode — The ultimate 'toolkit' to solve every games / riddles / geocaching / CTF.

Feedback