For a 128-bit key, how many characters are needed in different encoding schemes?
It depends on the bits per character: decimal needs 39, hex needs 32, letters need 28, alphanumeric (A-Z, 0-9) needs 25, and Base64 needs 22 characters.
* A larger alphabet packs more bits per character, so fewer characters are needed. *
For a key strength of 128 bits, the number of characters needed is $\lceil \frac{128}{\text{bits per character}} \rceil$:
| Encoding | Characters | Bits/char | Chars for 128 bits |
|---|---|---|---|
| Decimal digits (0-9) | 10 | $\log_2(10) \approx 3.32$ | $\lceil 38.6 \rceil = 39$ |
| Hexadecimal (0-F) | 16 | $\log_2(16) = 4.0$ | $32$ |
| Letters (A-Z) | 26 | $\log_2(26) \approx 4.70$ | $\lceil 27.2 \rceil = 28$ |
| Alphanumeric (A-Z, 0-9) | 36 | $\log_2(36) \approx 5.17$ | $\lceil 24.8 \rceil = 25$ |
| Base64 | 64 | $\log_2(64) = 6.0$ | $\lceil 21.3 \rceil = 22$ |
Key insight: A longer alphabet means more bits per character, so fewer characters are needed. This is why hex encoding (32 chars) is so common for keys — it's a good balance between readability and compactness.
Tip: Base64 uses A-Z, a-z, 0-9, +, / (and = for padding). It's the most compact human-readable encoding.
Go deeper: