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.