Base58 beschreibt ein Verfahren aus dem Computerbereich zur Kodierung von positiven ganzen Zahlen. Das Alphabet von Base58 ergibt sich aus dem der Base62-Kodierung durch Weglassen der vier Zeichen 0 (Null), O (großes o), I (großes i) und l (kleines L). Gegenüber dem Alphabet der Base64-Kodierung fehlen außerdem die Zeichen + (Plus) und / (Schrägstrich).
Das resultierende Alphabet der Länge 58 lautet 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz, es besteht somit nur aus verwechslungsfreien alpha-numerischen Zeichen.
Dezimal
Binär
Base58
Dezimal
Binär
Base58
Dezimal
Binär
Base58
Dezimal
Binär
Base58
0
000000
1
16
010000
H
32
100000
Z
48
110000
q
1
000001
2
17
010001
J
33
100001
a
49
110001
r
2
000010
3
18
010010
K
34
100010
b
50
110010
s
3
000011
4
19
010011
L
35
100011
c
51
110011
t
4
000100
5
20
010100
M
36
100100
d
52
110100
u
5
000101
6
21
010101
N
37
100101
e
53
110101
v
6
000110
7
22
010110
P
38
100110
f
54
110110
w
7
000111
8
23
010111
Q
39
100111
g
55
110111
x
8
001000
9
24
011000
R
40
101000
h
56
111000
y
9
001001
A
25
011001
S
41
101001
i
57
111001
z
10
001010
B
26
011010
T
42
101010
j
11
001011
C
27
011011
U
43
101011
k
12
001100
D
28
011100
V
44
101100
m
13
001101
E
29
011101
W
45
101101
n
14
001110
F
30
011110
X
46
101110
o
15
001111
G
31
011111
Y
47
101111
p
Der Vorteil von Base58 im Vergleich zu Base62 und Base64 ist, dass eine Verwechslung zwischen ähnlich aussehenden Zeichen (0, O, o; 1, I, l) unabhängig vom verwendeten Schrift-Font ausgeschlossen ist. Außerdem ist wie bei Base62 (und im Gegensatz zu Base64) durch Verwendung von ausschließlich alpha-numerischen Zeichen (ohne + und /) sichergestellt, dass bei Doppelklick die gesamte Base58-Zeichenkette markiert wird und dass bei Verwendung z. B. in E-Mails kein unerwünschter Zeilenumbruch entsteht. Der Nachteil ist eine etwas längere Zeichenfolge als bei einer Base62- oder Base64-Kodierung. Außerdem können zwei Zahlen, die in binärer Darstellung gleich viele Bits enthalten, in Base58-Darstellung unterschiedlich lang sein, weil 58 keine Zweierpotenz ist. Aus diesem Grund können zum Beispiel die Base58-kodierten Bitcoin-Adressen zwischen 25 bzw. 27 und 34 Zeichen lang sein.[1][2]
Verwendung
Verwendung findet die Base58-Kodierung typischerweise dort, wo lange Integer-Zahlen in kürzere Zeichenketten umgewandelt werden sollen und eine verwechslungsfreie Erkennung der Adresse sichergestellt sein soll, zum Beispiel bei Flickr-Kurz-URLs[3] oder bei Bitcoin-Adressen.