The standard Base64 alphabet (RFC 4648) contains exactly 64 characters, plus = for padding:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Index table
| Value | Binary | Char | Value | Binary | Char | Value | Binary | Char | Value | Binary | Char |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 000000 | A |
16 | 010000 | Q |
32 | 100000 | g |
48 | 110000 | w |
| 1 | 000001 | B |
17 | 010001 | R |
33 | 100001 | h |
49 | 110001 | x |
| 2 | 000010 | C |
18 | 010010 | S |
34 | 100010 | i |
50 | 110010 | y |
| 3 | 000011 | D |
19 | 010011 | T |
35 | 100011 | j |
51 | 110011 | z |
| 4 | 000100 | E |
20 | 010100 | U |
36 | 100100 | k |
52 | 110100 | 0 |
| 5 | 000101 | F |
21 | 010101 | V |
37 | 100101 | l |
53 | 110101 | 1 |
| 6 | 000110 | G |
22 | 010110 | W |
38 | 100110 | m |
54 | 110110 | 2 |
| 7 | 000111 | H |
23 | 010111 | X |
39 | 100111 | n |
55 | 110111 | 3 |
| 8 | 001000 | I |
24 | 011000 | Y |
40 | 101000 | o |
56 | 111000 | 4 |
| 9 | 001001 | J |
25 | 011001 | Z |
41 | 101001 | p |
57 | 111001 | 5 |
| 10 | 001010 | K |
26 | 011010 | a |
42 | 101010 | q |
58 | 111010 | 6 |
| 11 | 001011 | L |
27 | 011011 | b |
43 | 101011 | r |
59 | 111011 | 7 |
| 12 | 001100 | M |
28 | 011100 | c |
44 | 101100 | s |
60 | 111100 | 8 |
| 13 | 001101 | N |
29 | 011101 | d |
45 | 101101 | t |
61 | 111101 | 9 |
| 14 | 001110 | O |
30 | 011110 | e |
46 | 101110 | u |
62 | 111110 | + |
| 15 | 001111 | P |
31 | 011111 | f |
47 | 101111 | v |
63 | 111111 | / |
Padding: = (not a data value; it only marks missing bytes at the end).
Why these characters?
The 62 letters and digits are identical in virtually every character set in use, including ASCII, the ISO-8859 family, UTF-8 and even EBCDIC-to-ASCII gateways, so they survive any text channel. The two remaining characters differ between standards, because + and / have special meanings in URLs and file names.
Variant alphabets
| Standard | Value 62 | Value 63 | Padding |
|---|---|---|---|
| Standard / MIME / PEM | + |
/ |
= required |
| Base64URL | - |
_ |
usually omitted |
| IMAP mailbox names (RFC 3501) | + |
, |
none |
| XML name tokens | . |
- |
none |
| XML identifiers | _ |
: |
none |
Quick facts
- Characters that are never valid in standard Base64: spaces,
-,_,.,%,#and any non-ASCII character. Use the validator to find them. - Base64 is case-sensitive:
a(26) andA(0) are different values. =can only appear at the end, at most twice.- A string of only letters and digits is valid in every variant at once, which is why the detector may report several matches.
Comments (0)
Questions, ideas or a bug in “Base64 characters”? Leave a comment, rate the tool, or reply to others.
No comments yet. Be the first to share your feedback!