Ich kann keinen Beispielcode finden, um eine Base64-Zeichenfolge in eine hexadezimale Zeichenfolge zu konvertieren, beide im am besten lesbaren Format, z
5c2e00405e56439da66a4bd279dbfba2d605d6949142ade664ce0fc4a7ceee
0a9f0c5f5b8a13bfe6431fe48de5b7935b6604946c811e3b836f77c28f059df801
und
XC4AQF5WQ52makvSedv7otYF1pSRQq3mZM4PxKfO7gqfDF9bihO/5kMf5I3lt5NbZgSUbIEeO4Nvd8KPBZ34AQ==
Gibt es eine solche Open-Source-Bibliothek? Wenn ja, wo?
Crypto++®-Bibliothek 5.6.2
Crypto++ Library ist eine kostenlose C++-Klassenbibliothek mit kryptografischen Schemata.
Weitere Merkmale sind:
- Pseudozufallszahlengeneratoren (PRNG): ANSI X9.17 Anhang C, RandomPool
- passwortbasierte Schlüsselableitungsfunktionen: PBKDF1 und PBKDF2 aus PKCS #5, PBKDF aus PKCS #12 Anhang B
- Shamirs Secret-Sharing-Schema und Rabins Informationsverteilungsalgorithmus (IDA)
- schnelle Integer- (bignum) und Polynomoperationen mit mehreren Genauigkeiten
- Finite-Feld-Arithmetik, einschließlich GF(p) und GF(2^n)
- Primzahlerzeugung und Verifikation
- nützliche nicht-kryptografische Algorithmen
- DEFLATE (RFC 1951) Komprimierung/Dekomprimierung mit gzip (RFC 1952) und zlib RFC 1950) Formatunterstützung
- Hex-, Base-32- und Base-64-Codierung/Decodierung
- 32-Bit-CRC- und Adler32-Prüfsummenklassen-Wrapper für diese Betriebssystemfunktionen (optional):
- hochauflösende Timer unter Windows, Unix und Mac OS
- Berkeley- und Windows-Buchsen
- Windows benannte Pipes
- /dev/random, /dev/urandom, /dev/srandom
- CryptGenRandom von Microsoft unter Windows
- Eine High-Level-Schnittstelle für die meisten der oben genannten Funktionen, die eine Filter-/Pipeline-Metapher verwendet
- Benchmarks und Validierungstests
- x86-, x86-64- (x64), MMX- und SSE2-Assembler-Code für die am häufigsten verwendeten Algorithmen, mit Laufzeit-CPU-Funktionserkennung und Codeauswahl
- unterstützt Inline-Assemblierung im GCC- und MSVC-Stil sowie MASM für x64
- bestimmte Versionen sind in FIPS 140-2-validierter Form verfügbar
Herunterladen:
http://www.cryptopp.com/#download
Handbuch:
http://www.cryptopp.com/docs/ref/
Ich bin mir nicht sicher, ob ich es in C++ machen soll, aber in Python ist es einfach:
#!/usr/bin/env python
import base64
import binascii
def Print64Hex(instring):
""" Prints a base 64 string as hex."""
data = base64.standard_b64decode(instring)
print binascii.hexlify(data)
if __name__ == "__main__":
import sys
for d in sys.argv[1:]:
Print64Hex(d)
Wenn Sie also nur ein Dienstprogramm benötigen, um dies zu tun , ist es auch relativ einfach, Python in Ihr C++-Programm einzubetten und umgekehrt, sodass die Verwendung von Python als Bibliothek eine Option für Sie sein kann, siehe Einbetten für Python 2 oder für Python3 Beachten Sie, dass Sie für Python3 im obigen Code print in ändern müssen .binascii.hexlify(data)
print(binascii.hexlify(data))
Sie benötigen keine Bibliothek von Drittanbietern, wenn Sie Qt verwenden :
#include <QByteArray>
...
QByteArray str1 = "5c2e00405e56439da66a4bd279dbfba2d605d6949142...";
QByteArray hex = QByteArray::fromHex(str1);
QByteArray str2 = "XC4AQF5WQ52makvSedv7otYF1pSRQq3mZM4PxKfO7gqfDF9bihO...";
QByteArray base64 = QByteArray::fromBase64(str2);
QByteArray hexStr = str2.toHex();
Als Alternative zu den bereits erwähnten, möglichen Lösungen…
libb64: Base64-Codierungs-/Decodierungsroutinen
libb64 ist eine Bibliothek von ANSI-C-Routinen zum schnellen Kodieren/Dekodieren von Daten in und aus einem base64-kodierten Format. C++-Wrapper sind ebenso enthalten wie der Quellcode für eigenständige ausführbare Kodierungs- und Dekodierungsdateien.
Lizenz:
Public Domain.
Herunterladen:
http://sourceforge.net/projects/libb64/files/latest/download?source=files
mk117
mk117
mk117
hex, base-32, and base-64 coding/decoding
... Ich weiß nicht, wie es funktioniert das, aber hier ist ein Link zu der Referenzdokumentation, die auf dieser Website verfügbar ist.mk117