C/C++: Base64-Codec mit libtomcrypt
English
Deutsch
Problem:
In C/C++ möchtest du etwas nach/von Base64 kodieren/dekodieren. libtomcrypt ist unter der WTFPL-Lizenz verfügbar und daher eine gute Wahl für kommerzielle und nicht-kommerzielle Projekte.
Lösung
Verwende diese Codeausschnitte:
base64_libtomcrypt.cpp
#include <tomcrypt.h>
/**
* Kodiert einen gegebenen String in Base64
* @param input Der Eingabe-String für die Base64-Kodierung
* @param inputSize Die Größe der Eingabe zum Dekodieren
* @return Eine Base64-kodierte Version des kodierten Strings
*/
std::string encodeBase64(const char* input, const unsigned long inputSize) {
unsigned long outlen = inputSize + (inputSize / 3.0) + 16;
unsigned char* outbuf = new unsigned char[outlen]; //Ausgabespeicher reservieren
base64_encode((unsigned char*) input, inputSize, outbuf, &outlen);
std::string ret((char*) outbuf, outlen);
delete[] outbuf;
return ret;
}
/**
* Kodiert einen gegebenen String in Base64
* @param input Der Eingabe-String für die Base64-Kodierung
* @return Eine Base64-kodierte Version des kodierten Strings
*/
std::string encodeBase64(const std::string& input) {
return encodeBase64(input.c_str(), input.size());
}
/**
* Dekodiert einen Base64-kodierten String.
* @param input Der zu dekodierende Eingabe-String
* @return Ein String (binär), der die Base64-dekodierten Daten der Eingabe repräsentiert
*/
std::string decodeBase64(const std::string& input) {
unsigned char* out = new unsigned char[input.size()];
unsigned long outlen = input.size();
base64_decode((unsigned char*) input.c_str(), input.size(), out, &outlen);
std::string ret((char*) out, outlen);
delete[] out;
return ret;
}Check out similar posts by category:
C/C++, Cryptography
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow