Hex to PGP Word List Converter
Convert hex strings, PGP fingerprints, and SHA hashes to human-readable PGP biometric word lists for easy verbal verification.
About
PGP fingerprints and SHA hashes are hex strings designed for machines. Humans misread them. One transposed nibble in a 40-character SHA-1 hash means you verified the wrong key. The PGP Word List maps each byte value (0x00 - 0xFF) to a phonetically distinct English word drawn from two separate 256-word dictionaries. Even-position bytes use one dictionary; odd-position bytes use the other. This alternation creates a natural rhythm that makes transposition errors immediately audible. The system was designed by Phil Zimmermann for PGP key verification over telephone calls.
This tool parses arbitrary hex input - raw strings, colon-separated fingerprints, or space-delimited hashes - strips formatting, and performs the byte-to-word lookup against the complete biometric word list. It assumes the first byte occupies position 0 (even). Limitation: input must contain an even number of hex characters after cleanup, since each word encodes exactly one byte (2 hex nibbles). Odd-length input is zero-padded on the left.
Formulas
The conversion algorithm maps each byte of hex input to a word from one of two dictionaries based on its positional index.
Where i is the zero-based byte position, bytei is the decimal value (0 - 255) of the i-th byte pair in the hex string, EvenDict is the 256-entry even-position word list, and OddDict is the 256-entry odd-position word list. The hex string is first sanitized by removing all non-hex characters, then if the resulting length is odd, a leading 0 is prepended to ensure complete byte pairs.
Reference Data
| Byte (Hex) | Decimal | Even Word | Odd Word |
|---|---|---|---|
| 0x00 | 0 | aardvark | adroitness |
| 0x01 | 1 | absurd | adviser |
| 0x02 | 2 | accrue | aftermath |
| 0x0A | 10 | almighty | applicant |
| 0x10 | 16 | artist | bagpipe |
| 0x2C | 44 | buzzard | choking |
| 0x41 | 65 | classroom | cubic |
| 0x55 | 85 | crumpled | document |
| 0x7F | 127 | endow | fortify |
| 0x80 | 128 | entrust | fracture |
| 0x99 | 153 | flytrap | gravity |
| 0xA0 | 160 | gadgetry | hamburger |
| 0xB3 | 179 | glucose | indulge |
| 0xC8 | 200 | hydraulic | kitchen |
| 0xD4 | 212 | infamous | lockup |
| 0xE5 | 229 | topmost | tunnel |
| 0xF0 | 240 | unicorn | vacancy |
| 0xFE | 254 | Yucatan | Zulu |
| 0xFF | 255 | watchword | Zulu |