Umwandeln byte-array in jeder base

Ich habe ein array von bytes (beliebige Länge), und ich möchte zum codieren dieses array in string mit meinem eigenen base encoder. In .NET ist standard Base64 encoder, aber was ist, wenn ich verschlüsseln will, ist das array in Base62, Base53 oder Base13?

Ist es sogar möglich, erstellen Sie eine solche Universelle base encoder?

Ich weiß, ich könnte es tun, der einfache Weg, das heißt, für jedes byte reserve Feste Anzahl von Zeichen (im Falle der Base62 werden würde, wäre es 5 chars), und direkte byte->chars die Codierung, aber ich würde Platz verschwenden, als 5 Base62 chars sind in der Lage, enthalten mehr als 1 byte, aber weniger als 2 bytes.

Wie soll ich schreiben, wie ein encoder? Oder gibt es hier schon einige Klasse für diese?

Und bitte beachten Sie, dass ich brauche universal-decoder wie gut, ansonsten ist dies für mich nutzlos.

Ressourcen

Als die Lösung schon bekannt ist (verwenden Sie BigInteger), nur würde ich gerne hier einige Ressourcen, die im Zusammenhang mit dem BigInteger Klasse, wie es nicht verfügbar ist .NET 3.5:

Große ganze zahlen in C#

http://intx.codeplex.com/

https://svn.apache.org/repos/asf/incubator/heraldry/libraries/csharp/openid/trunk/Mono/Mono.Math/BigInteger.cs

http://www.codeproject.com/KB/cs/BigInteger_Library.aspx

http://www.codeproject.com/KB/cs/biginteger.aspx

  • Können Sie erklären, wo ein Base53 oder Base62 Codierung könnte von nutzen sein?
  • Übrigens Base62 Codierung ist großartig, wenn Sie wollen umwandeln byte-array in string ohne '/' und '+' ähnliche Symbole, nur a-z, a-Z, 0-9.
  • 5 Basis 62 Ziffern codieren kann viel mehr als 2 bytes haben!
InformationsquelleAutor Paya | 2010-07-16
Schreibe einen Kommentar