User Rating 0.0
Total Usage 0 times
Accepts raw hex, colon-separated, space-separated, or 0x-prefixed formats.
Examples:
PGP Word List Output
Is this tool helpful?

Your feedback helps us improve.

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.

pgp word list hex converter fingerprint biometric words sha hash cryptography

Formulas

The conversion algorithm maps each byte of hex input to a word from one of two dictionaries based on its positional index.

wordi =
{
EvenDict[bytei] if i mod 2 = 0OddDict[bytei] if i mod 2 = 1

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)DecimalEven WordOdd Word
0x000aardvarkadroitness
0x011absurdadviser
0x022accrueaftermath
0x0A10almightyapplicant
0x1016artistbagpipe
0x2C44buzzardchoking
0x4165classroomcubic
0x5585crumpleddocument
0x7F127endowfortify
0x80128entrustfracture
0x99153flytrapgravity
0xA0160gadgetryhamburger
0xB3179glucoseindulge
0xC8200hydraulickitchen
0xD4212infamouslockup
0xE5229topmosttunnel
0xF0240unicornvacancy
0xFE254YucatanZulu
0xFF255watchwordZulu

Frequently Asked Questions

Using two dictionaries - one for even-position bytes and one for odd-position bytes - creates a natural alternating rhythm of two-syllable and three-syllable words. If two adjacent bytes are accidentally swapped, the resulting word sequence will contain syllable-count violations that are immediately noticeable when read aloud. A single dictionary would make transposition errors phonetically invisible.
Each PGP word encodes exactly one byte, which requires exactly 2 hex nibbles. If your input has an odd number of hex characters after stripping separators, the tool prepends a leading zero to form a complete byte. For example, input "F" becomes "0F", which maps to the even-position word for byte value 15.
Yes. The parser strips all non-hexadecimal characters - colons, spaces, dashes, "0x" prefixes - before conversion. Input formats like "E5:82:3A", "E5 82 3A", "E5-82-3A", and "E5823A" all produce identical output.
BIP-39 encodes 11 bits per word from a single 2048-word dictionary and includes a checksum derived from SHA-256. The PGP Word List encodes 8 bits (one byte) per word from two 256-word dictionaries and includes no checksum. BIP-39 is designed for seed recovery; PGP words are designed for verbal fingerprint verification over untrusted channels.
The index is relative to the input you provide. The first byte of your pasted hex string is always position 0 (even dictionary). If you paste only a substring of a larger fingerprint starting at an odd byte offset, the words will differ from the full-key output. For correct results, always convert the complete fingerprint.