z-base-32 is Zooko O'Whielacronx's permuted Base32: the same 5-bits-per-character scheme as RFC 4648 Base32, but with the alphabet 'ybndrfg8ejkmcpqxot1uwisza345h769', chosen so the easiest-to-say and most frequent symbols map to the most common data, with no padding characters. It is used in Tahoe-LAFS, Mnet, and BitTorrent Mainline DHT contexts where a compact, transcribable, unpadded encoding is wanted.
aka: zbase32 · z-base32 · Zooko base32 · human-oriented base-32
z-base-32 — human-oriented base-32 (Zooko O'Whielacronx) · alphabet: ybndrfg8ejkmcpqxot1uwisza345h769
| input | output | note | |
|---|---|---|---|
| utf8 | → | ascii | Empty input -> empty output. |
| f utf8 | → | ca ascii | Byte-aligned: 'f' (0x66) -> 'ca' (8 bits -> 2 chars, trailing 5-bit group zero-extended). |
| fo utf8 | → | c3zo ascii | Byte-aligned: 'fo' -> 'c3zo'. |
| foo utf8 | → | c3zs6 ascii | Byte-aligned: 'foo' -> 'c3zs6'. |
| foobar utf8 | → | c3zs6aubqe ascii | Byte-aligned: 'foobar' -> 'c3zs6aubqe'. |
| c3zs6aubqe ascii | → | foobar utf8 | Round-trip: z-base-32-decode("c3zs6aubqe") = "foobar". |
agent: curl -H 'accept: application/json' wire.phall.io/encoding/z-base-32
or /encoding/z-base-32.json