Proquints
See A Proposal for Proquints: Identifiers that are Readable, Spellable, and Pronounceable. (Proquint: pronouncable quintet).
The example from the spec:
In sum, we propose encoding a 16-bit string as a proquint of alternating consonants and vowels as follows.
Four-bits as a consonant:
0 1 2 3 4 5 6 7 8 9 A B C D E F b d f g h j k l m n p r s t v z
Two-bits as a vowel:
0 1 2 3 a i o u
Whole 16-bit word, where “con” = consonant, “vo” = vowel:
0 1 2 3 4 5 6 7 8 9 A B C D E F +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |con |vo |con |vo |con | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Separate proquints using dashes, which can go un-pronounced or be pronounced “eh”. The suggested optional magic number prefix to a sequence of proquints is “0q-“.
Here are some IP dotted-quads and their corresponding proquints.
127.0.0.1 lusab-babad 63.84.220.193 gutih-tugad 63.118.7.35 gutuk-bisog 140.98.193.141 mudof-sakat 64.255.6.200 haguz-biram 128.30.52.45 mabiv-gibot 147.67.119.2 natag-lisaf 212.58.253.68 tibup-zujah 216.35.68.215 tobog-higil 216.68.232.21 todah-vobij 198.81.129.136 sinid-makam 12.110.110.204 budov-kuras
This solves a similar issue to Good human-usable tokens are not random strings. But I wonder whether this has the disadvantage of generating naughty words: see Avoid naughty words in hex digest strings by changing the set of characters.