Base62

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

DezimalBinärBase62 DezimalBinärBase62 DezimalBinärBase62 DezimalBinärBase62
0000000016010000G32100000W48110000m
1000001117010001H33100001X49110001n
2000010218010010I34100010Y50110010o
3000011319010011J35100011Z51110011p
4000100420010100K36100100a52110100q
5000101521010101L37100101b53110101r
6000110622010110M38100110c54110110s
7000111723010111N39100111d55110111t
8001000824011000O40101000e56111000u
9001001925011001P41101001f57111001v
10001010A26011010Q42101010g58111010w
11001011B27011011R43101011h59111011x
12001100C28011100S44101100i60111100y
13001101D29011101T45101101j61111101z
14001110E30011110U46101110k
15001111F31011111V47101111l

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
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.