Base62

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Base 62)

Base62 ist ein Stellenwertsystem zur Basis 62, welches zur Kodierung großer Zahlen mittels ASCII-Zeichen dient. Dabei werden die Ziffern 0–9 (Wert 0–9), Großbuchstaben A–Z (Wert 10–35) und Kleinbuchstaben a–z (Wert 36–61) verwendet.[1]

Durch die hohe Zahlenbasis entstehen kürzere Zeichenketten als mit dem Dezimal- oder dem Hexadezimalsystem, was vor allem zwei Vorteile bietet:

  • Sie können so von einem Menschen schneller und mit kleinerem Fehlerrisiko eingegeben werden. Dabei sollte eine Schriftart gewählt werden, bei dem verwechslungsfähige Buchstaben wie kleines L und großes i oder Ziffer Null und großes O unterscheidbar sind. Hierfür eignen sich besonders proportionale Schriftarten.
  • Längenbeschränkungen, z. B. wenn eine Zahl als Teil eines Bezeichners oder Dateinamens verwendet werden soll, können so umgangen werden. Hier sollte allerdings beachtet werden, dass das verarbeitende System den Unterschied zwischen Groß- und Kleinschreibung erhält.

Kodierungstabelle

Dezimal Binär Base62 Dezimal Binär Base62 Dezimal Binär Base62 Dezimal Binär Base62
0 000000 0 16 010000 G 32 100000 W 48 110000 m
1 000001 1 17 010001 H 33 100001 X 49 110001 n
2 000010 2 18 010010 I 34 100010 Y 50 110010 o
3 000011 3 19 010011 J 35 100011 Z 51 110011 p
4 000100 4 20 010100 K 36 100100 a 52 110100 q
5 000101 5 21 010101 L 37 100101 b 53 110101 r
6 000110 6 22 010110 M 38 100110 c 54 110110 s
7 000111 7 23 010111 N 39 100111 d 55 110111 t
8 001000 8 24 011000 O 40 101000 e 56 111000 u
9 001001 9 25 011001 P 41 101001 f 57 111001 v
10 001010 A 26 011010 Q 42 101010 g 58 111010 w
11 001011 B 27 011011 R 43 101011 h 59 111011 x
12 001100 C 28 011100 S 44 101100 i 60 111100 y
13 001101 D 29 011101 T 45 101101 j 61 111101 z
14 001110 E 30 011110 U 46 101110 k
15 001111 F 31 011111 V 47 101111 l

Abschätzung

Die Länge einer Kodierung in Base62 kann mit folgender Formel abgeschätzt werden:

mit s als Anzahl der Stellen im Base-62-Zahlensystem, n als Anzahl der Stellen im System zur Basis b. Die Formel zeigt, dass eine günstige Kompression bei kleinem b erreichbar ist.

Beispiele:

  • Eine Zahl vom Typ Long Integer (b = 2) mit 32 Bit, von denen 31 Bit (n = 31) nutzbar sind, weil nur positive Zahlen für den Zähler verwendet werden können, benötigt höchstens 6 Stellen.
  • Eine 128-stellige Binärzahl (n = 128, b = 2) kann im Zahlensystem zur Basis 62 mit 22 Zeichen kodiert werden, benötigt aber hexadezimal 32 und dezimal 39 Stellen.
  • Eine 8-stellige Bankleitzahl (n = 8, b = 10) kann mit 5 Stellen zur Basis 62 codiert werden.

Anwendungsbereiche

Typische Anwendungen sind Hashcodes, Schlüssel in der Kryptologie und automatisch generierte PINs. Base62 wird auch zur Komprimierung von JavaScript genutzt, um die Gesamtgröße von Webseiten mit hohen Anteilen von JavaScript geringer zu halten.[2]

Da Base62 keine Sonderzeichen enthält, kann dieses Verfahren auch in URLs und anderen Identifiern genutzt werden. Allerdings kann beispielsweise Base64 effizienter kodiert und dekodiert werden.

Siehe auch

Einzelnachweise

  1. A secure, lossless, and compressed Base62 encoding. In: Institute of Electrical and Electronics Engineers . 19. November 2008. Abgerufen am 30. November 2021: „"This base62 compressed encoding has been tested & The 62 alphanumeric characters (A-Z, a-z, 0–9)"“
  2. Der JavaScript Kompressor "Packer" von Dean Edwards