Konvertieren Sie Text zwischen UTF-8, Base64 und Hexadezimal
Base64 und Hexadezimal sind umkehrbare Textdarstellungen von Bytes. Sie helfen dabei, Daten durch Systeme zu übertragen, die druckbare Zeichen erwarten, bieten jedoch keine Geheimhaltung, Authentizität oder Zugriffskontrolle.
Der Konverter eignet sich für gewöhnlichen UTF-8-Text und codierte Zeichenfolgen, die bequem in den Browserspeicher passen. Es handelt sich nicht um einen Streaming-Binärdatei-Encoder und sollte nicht zum Verbergen von Passwörtern, Token oder privaten Datensätzen verwendet werden.
Text wird zu Bytes, bevor er zu Base64 oder Hex wird
Zeichen benötigen eine Kodierung wie UTF-8. Derselbe sichtbare Text, der in einer anderen Zeichenkodierung dargestellt wird, kann unterschiedliche Bytes und daher unterschiedliche Base64- und Hexadezimalausgaben erzeugen.
Emoji und nicht-lateinische Zeichen verwenden mehrere UTF-8-Bytes. Zählen Sie Bytes statt sichtbarer Zeichen, wenn ein Protokoll Größenbeschränkungen vorschreibt.
Base64 tauscht kompakte Binärdateien gegen druckbaren Text
Base64 stellt Bytegruppen mit einem 64-stelligen Alphabet und optionaler Auffüllung dar. Es ist nützlich in JSON, E-Mail, Daten-URLs und Protokollen, die keine beliebige Binärdatei sicher übertragen können.
Die Darstellung ist etwa ein Drittel größer als der Binäreingang. URL-sichere Varianten ersetzen einige Buchstaben des Alphabets und können Auffüllungen weglassen, sodass ein Decoder wissen muss, welche Konvention erwartet wird.
Hex ist einfach und ausführlich
Jedes Byte wird zu zwei hexadezimalen Ziffern. Dadurch lassen sich Bytegrenzen leicht überprüfen, die Größe verdoppelt sich jedoch im Vergleich zu Rohbytes.
Präfixe wie 0x, Leerzeichen, Trennzeichen und Großbuchstaben sind Darstellungskonventionen. Bestätigen Sie, was das Ziel akzeptiert, bevor Sie sie entfernen oder hinzufügen.
Decodierte Inhalte bleiben nicht vertrauenswürdig
Die Dekodierung macht einen Wert nicht sicher. Das Ergebnis könnte HTML, ein Skript, einen Befehl, eine URL oder eine fehlerhafte Binärdatei enthalten, die den nächsten Parser ausnutzen soll.
Überprüfen und validieren Sie dekodierte Daten für ihr Ziel. Verwenden Sie Verschlüsselung und authentifizierte Zugriffskontrollen, wenn Geheimhaltung oder Manipulationssicherheit erforderlich sind.
Verwenden Sie Beispiele auf Byte-Ebene, um Unicode-Überraschungen zu diagnostizieren
Wenn ein codierter Wert kein Roundtrip durchführt, reduzieren Sie die Eingabe auf ein kurzes Beispiel, das ein einfaches ASCII-Zeichen und ein Nicht-ASCII-Zeichen wie einen Buchstaben mit Akzent oder ein Emoji enthält. Codieren Sie es, überprüfen Sie die UTF-8-Bytes im Hexadezimalformat und vergleichen Sie diese Bytes dann mit dem System, das den anderen Wert erzeugt hat. Dadurch wird offengelegt, ob eine Seite UTF-8, UTF-16, eine Legacy-Codepage oder rohe Binärdaten verwendet hat. Überprüfen Sie die Base64-Padding- und URL-sicheren Alphabet-Ersetzungen separat. Gehen Sie niemals davon aus, dass es sich bei dekodierten Bytes um harmlosen Text handelt: Speichern oder führen Sie sie nur aus, wenn die Quelle vertrauenswürdig ist und der erwartete Dateityp verstanden wird.
Schnellstart: LocalUtils
- Stellen Sie fest, ob es sich bei der Quelle um einfachen UTF-8-Text, Base64 oder Hexadezimaltext handelt, bevor Sie eine Richtung auswählen.
- Fügen Sie ein kleines bekanntes Beispiel ein und konvertieren Sie es einmal.
- Machen Sie die Konvertierung rückgängig und vergleichen Sie den wiederhergestellten Text oder die wiederhergestellten Bytes mit dem Original.
- Wenn Sie das Ergebnis in einem anderen System verwenden, bestätigen Sie dessen Alphabet, Auffüllung, Bytekodierung und Erwartungen für Zeilenumbrüche oder Präfixe.
Was der Browser macht
Der Browser konvertiert Text in UTF-8-Bytes und stellt diese Bytes als Base64 oder Hexadezimal dar. Dekodiervorgänge kehren die Darstellung um und interpretieren wiederhergestellte Bytes als Text.
Es ist kein Verschlüsselungsschlüssel beteiligt. Jeder, der über den kodierten Wert verfügt, kann ihn normalerweise entschlüsseln. Der Text verbleibt im Pfad des Browser-Dienstprogramms, kann aber nach der Verwendung im Verlauf der Zwischenablage oder im vom Browser verwalteten Formularstatus verbleiben.
Ein- und Ausgänge
- Die Texteingabe und -ausgabe erfolgt gemäß UTF-8-Erwartungen.
- Base64 verwendet das Standardalphabet und kann Gleichheitszeichenauffüllungen enthalten.
- Hexadezimal erfordert Paare gültiger Hexadezimalziffern, die Bytes darstellen.
Grenzen, die Sie kennen sollten, bevor Sie beginnen
- Beliebige Binärdaten können möglicherweise nicht in sinnvollen UTF-8-Text dekodiert werden.
- URL-sichere Base64-Varianten können unterschiedliche Zeichen und Füllregeln verwenden.
- Zeichen mit ungerader Länge oder Nicht-Hexadezimalzeichen machen Hexadezimalzahlen ungültig.
- Große Werte werden in Base64 oder Hex erweitert und können einen Textbereichs-Workflow ineffizient machen.
Checkliste zur Verifizierung
- Roundtrip einer bekannten Probe durch Kodierung und Dekodierung.
- Vergleichen Sie die Bytelänge und die genauen Zeichen, einschließlich Leerzeichen.
- Behandeln Sie jeden dekodierten Wert als nicht vertrauenswürdige Eingabe, bevor Sie ihn in HTML, einen Befehl oder ein Programm einfügen.
Fehlerbehebung
- Wenn die Base64-Dekodierung fehlschlägt, entfernen Sie die umgebenden Beschriftungen und prüfen Sie, ob die Quelle ein URL-sicheres Alphabet verwendet.
- Wenn der Text verstümmelt ist, bestätigen Sie die ursprüngliche Bytekodierung, anstatt UTF-8 anzunehmen.
- Wenn Hex fehlschlägt, entfernen Sie Leerzeichen oder Präfixe nur dann, wenn das Zielformat sie nicht erfordert, und bestätigen Sie eine gerade Ziffernanzahl.
Fragen, die Menschen stellen
Kann jemand Base64 ohne Erlaubnis entschlüsseln?
Ja. Es ist kein Geheimnis erforderlich, und allgemein verfügbare Tools können es sofort rückgängig machen.
Warum sieht dekodierter Text beschädigt aus?
Die wiederhergestellten Bytes können eine andere Textkodierung verwenden oder eine beliebige Binärdatei anstelle von Text sein.
Wann sollte ich stattdessen Hex verwenden?
Hex eignet sich für Inspektionen auf Byteebene, Digests, Protokollfelder und kurze Binärwerte, bei denen die Lesbarkeit wichtiger ist als die Größe.
