Man könnte den binären Wert 1 zu 1 in das
ASCII Alphabeth umwandeln, also zur Basis 256. Aber dann würden Sonderzeichen, oder auf der Tastatur NICHT ereichbare Zeichen oder sogar nicht darstellbare Zeichen im zu lesenden Text erscheinen. Man könnte aber auch in einen binär formatierten Text umwandeln. 1 Datenbit wird dann durch eine 0 oder 1 dargestellt. Ein Int64 würde in Basis 256 dann als Text exakt 8 Zeichen lang sein, und als binärer und lesbarer Text eben 128 Zeichen lang. Man erkennt das die LÄNGE des Textes sich unterscheidet. Während die Basis 256 nicht lesbaren und eingebbaren aber dafür den kürzesten String produziert, produziert die Basis 2 den String mit der geringsten Anzahl an lesbaren und eingebbaren Zifferkombinationen, aber eben auch den LÄNGSTEN möglichen String.
Das Ziel der Base64/Base32/Base36 Formatierungen ist es also die effizienteste Kodierung der Strings zu erreichen, so daß die Strings annehmbar nicht zu lang werden aber gleichzeitig noch ohne Fehler eingebbar bleiben. Je größer die so kodierte Information ist desto mehr steigt die Sicherheit der Keys. Ein 32 Bit Aktivierungsschlüssel ist zB. im erreichbaren Limit für eine Brute Force Suche, also viel zu kurz. Ein 128 Bit Key ist dagegen als sicher einzustufen. Würde man diesen 128 Bit Key zur Basis 256 darstellen so müsste der Benutzer 16 Zeichen eingeben, was aber im
ASCII eben nicht möglich ist. Zur Basis 2 wiederum müsste der User 128 Nullen und Einsen eingeben was ohne Fehler fast unmöglich und auch unzumutbar ist. Zur Basis 64 gibt der Benutzer dagegen 22 Zeichen ein, wobei aber nur die Buchstaben '0' bis '9' und 'A' bis 'Z' und 'a' bis 'z' gültig wären. Sprich keine Sonderzeichen und so'n Quatsch. Bei der Basis 36, einem Zeichenalphabeth bestehend aus '0' bis '9' und 'A' bis 'Z', müsste der Benutzer für die 128 Bit Information schon 128 * Ln(2) / Ln(36) = ~25 Zeichen eingeben.
Gruß Hagen