Base64 Kodierung
-
Hallo !
Ich möchte gerne den Base64 Algorithmus in meine Applikation implementieren, doch gibt es da mehrere Probleme. Zum einem weiß ich nicht genau wie der eigentlich funktioniert
und zum anderen weiß ich nicht genau wie ich den Speicher für die entstehenden C-String allokieren muss (Grösse).
Ich würde mich über Hilfestellung(en) freuen.
-
Wie sieht denn der Prototyp von der Funktion aus, die du dafür verwenden willst?
-
-
Strogij schrieb:
Wie sieht denn der Prototyp von der Funktion aus, die du dafür verwenden willst?
void base64enc (char *in, char *out, unsigned int len) { /* Base64 Algorithmus Encode */ } void base64dec (char *in, char *out, unsigned int len) { /* Base64 Algorithmus Decode */ }
Der Parameter len gibt die Länge des Input-Strings an.
kingruedi schrieb:
Das Info Material habe ich auch schon gelsen. Kann es nicht darauf anwenden.
-
nächster Versuch.
www.google.de - Einhabe "base64 C"
und siehe da, was erhalten wir für ein Link, mit genau dem Interface was du suchst
http://www.gnu.org/software/gsasl/doxygen/base64_8c-source.html
wow
und alles nur mit einer Google-Suche gefunden
-
Recht schönen Dank auch aber das löst mein Problem immer noch nicht ganz.
Ich weiß nämlich immer noch nicht wie ich die Größe für die Output Strings (bei Encode UND Decode) "berechne".
-
wozu ist das nötig?
std::string base64enc(std::string); std::string base64dec(std::string);
wir haben das zeitalter c++ erreicht, da gibt es einigermassen vernünftige strings
-
Korbinian schrieb:
wozu ist das nötig?
Das verstehe ich jetzt nicht ganz.
-
er meint nimm std::string und du hast keine Probleme.
Zur größe, siehe
RFC 3548 schrieb:
(1) the final quantum of encoding input is an integral multiple of 24
bits; here, the final unit of encoded output will be an integral
multiple of 4 characters with no "=" padding,(2) the final quantum of encoding input is exactly 8 bits; here, the
final unit of encoded output will be two characters followed by two
"=" padding characters, or(3) the final quantum of encoding input is exactly 16 bits; here, the
final unit of encoded output will be three characters followed by one
"=" padding character.