So wandeln Sie Hex in Base64 um
- Fügen Sie das Hex in Eingabe · Hex ein. Leerzeichen, Zeilenumbrüche, Doppelpunkte, Bindestriche und die Präfixe
0xoder\xwerden übersprungen, Groß- und Kleinschreibung spielt keine Rolle. - Das Base64 erscheint beim Tippen in Ausgabe · Base64.
- Wählen Sie unter der Ausgabe Padding (=) ab, wenn der Empfänger Base64 ohne Padding möchte, und stellen Sie Zeilenumbruch für umbrochene Ausgabe auf 64 (PEM) oder 76 (MIME).
- Ausgabe kopieren, oder prüfen Sie das Ergebnis mit dem Umschalter Base64 → Hex in der Gegenrichtung. Base64 in Hex ist dasselbe Tool andersherum.
Hash-Digests: Hex oder Base64
Hashfunktionen liefern rohe Bytes. Kommandozeilentools wie sha256sum und md5sum geben diese Bytes als Hex aus, während viele Protokolle denselben Digest in Base64 erwarten. Hier die Digests der fünf Bytes hello:
| Hash | Hex (von sha256sum usw.) | Base64 |
|---|---|---|
| MD5 | 5d41402abc4b2a76b9719d911017c592 | XUFAKrxLKna5cZ2REBfFkg== |
| SHA-1 | aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d | qvTGHdzF6KLavt4PO0gs2a6pQ00= |
| SHA-256 | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ= |
Wo die Base64-Form verlangt wird:
- Subresource Integrity.
integrity="sha384-…"an einem<script>- oder<link>-Tag enthält einen Base64-Digest. Der SRI-Hash-Generator baut das ganze Attribut aus einer Datei. Content-MD5-Header. RFC 1864 definiert den Wert als Base64 des 16-Byte-MD5-Digests, und Objektspeicher, die Uploads damit prüfen, lehnen die Hex-Form ab. Siehe MD5 in Base64.- Signaturen und HMACs in API-Anfragen, die meist als Base64 gesendet werden. HMAC in Base64 berechnet sie in beiden Formen.
- Schlüssel und Secrets: Ein 32-Byte-Schlüssel, den
openssl rand -hex 32ausgibt, wird zu dem 44 Zeichen langen Base64-Wert, den viele Konfigurationsdateien erwarten.
Für den SHA-256 Ihres eigenen Textes oder Ihrer Datei überspringt SHA-256 in Base64 den Umweg über Hex ganz.
Der übliche Fehler: den Hex-Text kodieren
echo -n 2cf24d…9824 | base64 liefert ein plausibles, aber falsches Ergebnis. Es kodiert die 64 ASCII-Zeichen des Hex statt der 32 Bytes, für die sie stehen, und liefert 88 Zeichen, die mit MmNmMjRk beginnen. Dieser Wert ergibt beim Dekodieren wieder den Hex-Text, also beschwert sich niemand, bis eine Signatur- oder Integritätsprüfung fehlschlägt. Dekodieren Sie zuerst das Hex:
echo -n 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | xxd -r -p | base64
# LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=
printf hello | openssl dgst -sha256 -binary | base64
# same result, without going through hex at all
xxd -r -p wandelt reines Hex zurück in Bytes. Es wird mit Vim ausgeliefert; auf minimalen Systemen installieren Sie das Paket xxd. Bei OpenSSL sorgt -binary dafür, dass der Digest als Bytes statt als Hex herauskommt.
Hex in Base64 im Code
import base64
base64.b64encode(bytes.fromhex("5d41402abc4b2a76b9719d911017c592")).decode()
# 'XUFAKrxLKna5cZ2REBfFkg=='
Buffer.from("5d41402abc4b2a76b9719d911017c592", "hex").toString("base64");
// 'XUFAKrxLKna5cZ2REBfFkg=='
Die Seiten zu Python und Node.js behandeln die URL-sicheren Varianten und die ohne Padding. Kommt der Digest in eine URL oder ein JWT, wandeln Sie das Ergebnis mit Base64 in Base64URL um.
Wenn die Umwandlung fehlschlägt
- „ungerade Anzahl Hex-Ziffern“. Jedes Byte braucht zwei Ziffern; beim Kopieren ist eine verloren gegangen. Prüfen Sie beide Enden der Eingabe.
- „unerwartetes Zeichen“. In der Eingabe steht etwas, das kein Hex ist, etwa eine Kennzeichnung
sha256:oder der Dateiname, densha256sumhinter dem Digest ausgibt. Entfernen Sie es; Anzeigen springt an die Stelle. - Offsets aus einem Hex-Dump. In
00000010: 4865 6c6cist00000010eine Position, keine Daten, aber gültiges Hex, und es wird mit umgewandelt. Verwenden Sie die Ausgabe vonxxd -p, die keine Offsets enthält.
Häufige Fragen
Wie wandle ich einen SHA-256-Hash in Hex in Base64 um?
Fügen Sie die 64 Hex-Ziffern in die Eingabe ein. Das Ergebnis hat 44 Zeichen und endet auf =, zum Beispiel wird 2cf24dba…9824 zu LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=. Auf der Kommandozeile: echo -n HEX | xxd -r -p | base64.
Warum ist mein Base64 doppelt so lang wie erwartet?
Die Hex-Zeichenkette wurde als Text kodiert, jede Hex-Ziffer wurde also zu einem Byte. Ein SHA-256-Digest ergibt so 88 statt 44 Zeichen. Dekodieren Sie das Hex zuerst in Bytes, genau das macht dieser Konverter.
Wie viele Base64-Zeichen ergibt eine Hex-Zeichenkette?
Zwei Hex-Ziffern bilden ein Byte, und je 3 Bytes werden zu 4 Base64-Zeichen, aufgerundet auf ein Vielfaches von 4. 32 Hex-Ziffern (MD5) ergeben 24 Zeichen, 40 (SHA-1) ergeben 28, 64 (SHA-256) ergeben 44 und 128 (SHA-512) ergeben 88.
Kann ich eine UUID in Base64 umwandeln?
Ja, fügen Sie sie mit den Bindestrichen ein. Die 16 Bytes von 123e4567-e89b-12d3-a456-426614174000 werden zu Ej5FZ+ibEtOkVkJmFBdAAA==, 24 Zeichen statt 36.