Base64

Codierung, welche auf einem 64er Zahlensystem basiert

ASCII-Zeichen bestehen aus 8-Bits. Base64 codiert 8-Bit-Zeichen zu 6-Bit-Zeichen, denn zum Beispiel das Email-Protokoll SMTP unterstützt in seiner ursprünglichen Fassung nur maximal 7-Bit-ASCII-Zeichen. Durch die Codierung steigt die ursprüngliche Datenmenge um 36%.

Zur Codierung werden nur die Zeichen A-Z, a-z, 0-9, + und / verwendet. Falls die Gesamtanzahl der Eingabebits nicht durch 24 teilbar ist, fügt Base64 Nullen als Füllbits ein. Komplette Füllbytes (8-Bits) werden dabei als = codiert. Sei der zu codierende Text „ABBA“. Nach der ASCII-Tabelle ergibt sich daraus diese Bitfolge:
01000001 01000010 01000010 01000001
Die Bitfolge wird nun in 6-Bit-Blöcke geteilt und am Ende mit Nullen aufgefüllt, bis die Anzahl der Bits durch 24 teilbar ist.
010000 010100 001001 000010 010000 010000 000000 000000
Es wurden 2 Füllbytes am Ende der Bitfolge eingefügt. Dadurch entstehen zwei Gleichheitszeichen am Ende des Codeworts. Die restlichen Bitfolgen werden entsprechend der Codetabelle übersetzt:

Base64

Zeichen

Base64

Zeichen

Base64

Zeichen

Base64

Zeichen

000000

A

010000

Q

100000

g

110000

w

000001

B

010001

R

100001

h

110001

x

000010

C

010010

S

100010

i

110010

y

000011

D

010011

T

100011

j

110011

z

000100

E

010100

U

100100

k

110100

0

000101

F

010101

V

100101

l

110101

1

000110

G

010110

W

100110

m

110110

2

000111

H

010111

X

100111

n

110111

3

001000

I

011000

Y

101000

o

111000

4

001001

J

011001

Z

101001

p

111001

5

001010

K

011010

a

101010

q

111010

6

001011

L

011011

b

101011

r

111011

7

001100

M

011100

c

101100

s

111100

8

001101

N

011101

d

101101

t

111101

9

001110

O

011110

e

101110

u

111110

+

001111

P

011111

f

101111

v

111111

/


Als Ergebnis der Codierung ergibt sich: QUJCQQ==