Base64 Encoder / Decoder

What is Base64 encoding?

The term Base64 refers to a specific MIME content transfer encoding. It is also used as a generic term for any similar encoding scheme that encodes binary data by treating it numerically and translating it into a base64 representation. The particular choice of base is due to the history of character set encoding: one can choose a set of 64 characters that is both part of the subset common to most encodings, and also printable. This combination leaves the data unlikely to be modified in transit through systems, such as email, which were traditionally not 8-bit clean. Concrete examples would be sending images in an XML file or in an email attachment.

Base64 is a binary-to-text encoding representing binary data in an ASCII string format. Base64 encoding uses different 64 ASCII characters including uppercase letters A-Z, lowercase letters a-z, digits 0-9, and the special symbols + and / to represent binary data in a text format.

For example, this is a programming quote by Dennis Ritchie, the creator of the C programming language.

 

The only way to learn a new programming language is by writing programs in it.

 

The quote above is encoded to Base64 as the following. Of course, it can be decoded to the original quote otherwise.

VGhlIG9ubHkgd2F5IHRvIGxlYXJuIGEgbmV3IHByb2dyYW1taW5nIGxhbmd1YWdlIGlzIGJ5IHdyaXRpbmcgcHJvZ3JhbXMgaW4gaXQu
 

What are the characters used in Base64 encoding?

The characters used in Base64 encoding can be divided into four groups; i.e. uppercase, lowercase, digits, and symbols.

  • Uppercase letters - From index 0 to 25 ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Lowercase letters - From index 26 to 51 abcdefghijklmnopqrstuvwxyz
  • Digits - From index 52 to 61 0123456789
  • Symbols - From index 62 to 63 +/

This is the list of all the characters used in Base64 encoding ordered by index.

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
 

The Base64 encoding index table

The following is the Base64 encoding index table.

Index Character Index Character Index Character Index Character
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /