Proquints are identifiers that are readable and pronounceable.
In Pronounceable Identifiers, Daniel S. Wilkerson proposes encoding a 16-bit string as a pronouncable quintuplets of alternating consonants and vowels as follows. Four-bits for consonants, and two-bits for vowels:
0 1 2 3 4 5 6 7 8 9 A B C D E F | 0 1 2 3 b d f g h j k l m n p r s t v z | a i o u
Separate proquints using dashes, which can go un-pronounced or be pronounced "eh".
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
con | vow | con | vow | con |
Here are some IP dotted-quads and their corresponding proquints.
127.0.0.1 lusab-babad | 147.67.119.2 natag-lisaf 63.84.220.193 gutih-tugad | 212.58.253.68 tibup-zujah 63.118.7.35 gutuk-bisog | 216.35.68.215 tobog-higil 140.98.193.141 mudof-sakat | 216.68.232.21 todah-vobij 64.255.6.200 haguz-biram | 198.81.129.136 sinid-makam 128.30.52.45 mabiv-gibot | 12.110.110.204 budov-kuras
It's also possible to transmit low-resolution graphical assets by using one's voice.
Example
An ASCII string can also be encrypted in proquints, the sentence Many hands make light work. is represented as follows:
hujad kunun fadim kajiv kidog fadit kajir kihab kudin kitim libab litiz lanir funir
Implementation
A minimal encoder implementation of proquints in Uxntal:
@proquint ( short* -- ) ( c1 ) DUP2 #0c emit-con ( v1 ) DUP2 #0a emit-vow ( c2 ) DUP2 #06 emit-con ( v2 ) DUP2 #03 emit-vow ( c3 ) #00 emit-con #20 &emit ( c -- ) #18 DEO JMP2r @emit-con SFT2 #000f AND2 ;&con ADD2 LDA !proquint/emit &con "bdfghjklmnprstvz @emit-vow SFT2 #0003 AND2 ;&vow ADD2 LDA !proquint/emit &vow "aiou