Base64Decode@1
Der Node Base64Decode@1 konvertiert Base64-kodierte Zeichenketten zurück in ihre ursprünglichen Zeichenkettenwerte. Er dekodiert Base64-Zeichenketten mit UTF-8-Kodierung und ist unverzichtbar für die Verarbeitung kodierter Daten aus APIs, Konfigurationsdateien oder sicherer Speicherung.
Adapter-Voraussetzungen
- Allgemeine Verfügbarkeit: Alle Adapter unterstützen diesen Node-Typ.
Node-Konfiguration
Für die Felder path, targetPath, targetValueWriteMode und targetValueKind siehe Überblick.
transformations:
- type: Base64Decode@1
path: $.users[*] # Path to objects containing encoded data
sourcePath: $.encodedPassword # Path to Base64 encoded value
targetPath: $.password # Path where decoded value will be stored
Parameter
Erforderliche Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
path | string | JSONPath zu den Objekten, die die Base64-kodierten Daten enthalten |
sourcePath | string | Relativer Pfad zum Base64-kodierten Wert innerhalb jedes Objekts |
targetPath | string | Relativer Pfad, unter dem der dekodierte Wert gespeichert wird |
Dekodierungsprozess
Der Node führt die Base64-Dekodierung in diesen Schritten durch:
- Objektauswahl: Verwendet
path, um Objekte auszuwählen, die kodierte Daten enthalten - Wertabruf: Extrahiert die Base64-kodierte Zeichenkette aus
sourcePath - Base64-Dekodierung: Konvertiert die Base64-Zeichenkette in ein Byte-Array
- UTF-8-Konvertierung: Konvertiert das Byte-Array zurück in eine UTF-8-Zeichenkette
- Ergebnisspeicherung: Speichert die dekodierte Zeichenkette unter
targetPath
Behandlung von Null-Werten
- Null-Erhaltung: Null-Werte werden ohne Dekodierung beibehalten
- Leere Zeichenketten: Leere Zeichenketten werden dekodiert (ergeben eine leere dekodierte Zeichenkette)
- Ungültiges Base64: Ungültige Base64-Zeichenketten lösen eine FormatException aus
Beispiele
Beispiel 1: Benutzeranmeldedaten dekodieren
Base64-kodierte Passwörter dekodieren:
transformations:
- type: Base64Decode@1
path: $.users[*]
sourcePath: $.encodedPassword
targetPath: $.password
Eingabe:
{
"users": [
{ "id": "user1", "encodedPassword": "cGFzc3dvcmQxMjM=" },
{ "id": "user2", "encodedPassword": "bXlTZWNyZXQ0NTY=" }
]
}
Ausgabe:
{
"users": [
{ "id": "user1", "encodedPassword": "cGFzc3dvcmQxMjM=", "password": "password123" },
{ "id": "user2", "encodedPassword": "bXlTZWNyZXQ0NTY=", "password": "mySecret456" }
]
}
Beispiel 2: API-Schlüssel dekodieren
Ursprüngliche API-Schlüssel aus dem kodierten Format extrahieren:
transformations:
- type: Base64Decode@1
path: $.services[*]
sourcePath: $.encodedApiKey
targetPath: $.apiKey
Eingabe:
{
"services": [
{ "name": "API1", "encodedApiKey": "c2VjcmV0LWtleS0xMjM=" },
{ "name": "API2", "encodedApiKey": "YW5vdGhlci1zZWNyZXQ=" }
]
}
Ausgabe:
{
"services": [
{ "name": "API1", "encodedApiKey": "c2VjcmV0LWtleS0xMjM=", "apiKey": "secret-key-123" },
{ "name": "API2", "encodedApiKey": "YW5vdGhlci1zZWNyZXQ=", "apiKey": "another-secret" }
]
}
Beispiel 3: Konfigurationswerte dekodieren
Konfigurationsparameter aus sicherer Speicherung dekodieren:
transformations:
- type: Base64Decode@1
path: $.configuration.secure[*]
sourcePath: $.encodedValue
targetPath: $.value
Eingabe:
{
"configuration": {
"secure": [
{ "key": "db_password", "encodedValue": "ZGF0YWJhc2VfcGFzcw==" },
{ "key": "api_token", "encodedValue": "dG9rZW5fMTIzNDU2" }
]
}
}
Ausgabe:
{
"configuration": {
"secure": [
{ "key": "db_password", "encodedValue": "ZGF0YWJhc2VfcGFzcw==", "value": "database_pass" },
{ "key": "api_token", "encodedValue": "dG9rZW5fMTIzNDU2", "value": "token_123456" }
]
}
}
Beispiel 4: Data-URI-Inhalt dekodieren
Inhalt aus Data-URIs extrahieren:
transformations:
- type: Base64Decode@1
path: $.files[*]
sourcePath: $.base64Content
targetPath: $.textContent
Eingabe:
{
"files": [
{ "name": "readme.txt", "base64Content": "SGVsbG8gV29ybGQh" },
{ "name": "config.json", "base64Content": "eyJzZXR0aW5nIjogInZhbHVlIn0=" }
]
}
Ausgabe:
{
"files": [
{ "name": "readme.txt", "base64Content": "SGVsbG8gV29ybGQh", "textContent": "Hello World!" },
{ "name": "config.json", "base64Content": "eyJzZXR0aW5nIjogInZhbHVlIn0=", "textContent": "{\"setting\": \"value\"}" }
]
}
Beispiel 5: Null-Werte behandeln
Behandlung von Null-Werten demonstrieren:
transformations:
- type: Base64Decode@1
path: $.items[*]
sourcePath: $.encodedData
targetPath: $.data
Eingabe:
{
"items": [
{ "id": 1, "encodedData": "aGVsbG8=" },
{ "id": 2, "encodedData": null },
{ "id": 3, "encodedData": "d29ybGQ=" }
]
}
Ausgabe:
{
"items": [
{ "id": 1, "encodedData": "aGVsbG8=", "data": "hello" },
{ "id": 2, "encodedData": null, "data": null },
{ "id": 3, "encodedData": "d29ybGQ=", "data": "world" }
]
}
Beispiel 6: Mehrere Felder dekodieren
Mehrere Base64-Felder im selben Objekt dekodieren:
transformations:
- type: Base64Decode@1
path: $.credentials[*]
sourcePath: $.encodedUsername
targetPath: $.username
- type: Base64Decode@1
path: $.credentials[*]
sourcePath: $.encodedPassword
targetPath: $.password
Eingabe:
{
"credentials": [
{
"service": "database",
"encodedUsername": "YWRtaW4=",
"encodedPassword": "cGFzc3dvcmQ="
}
]
}
Ausgabe:
{
"credentials": [
{
"service": "database",
"encodedUsername": "YWRtaW4=",
"encodedPassword": "cGFzc3dvcmQ=",
"username": "admin",
"password": "password"
}
]
}
Anwendungsfälle
- Anmeldedaten dekodieren: Kodierte Passwörter, API-Schlüssel oder Tokens aus der Konfiguration dekodieren
- Datenverarbeitung: Ursprünglichen Inhalt aus Base64-kodierten API-Antworten extrahieren
- Dateiinhalt extrahieren: Dateiinhalte dekodieren, die im Base64-Format empfangen wurden
- Konfigurationsverwaltung: Ursprüngliche Werte aus verschleierten Konfigurationsdaten abrufen
- Data-URI-Verarbeitung: Inhalt aus Data-URIs zur weiteren Verarbeitung extrahieren
- Sichere Speicherung: Werte dekodieren, die aus sicheren Speichersystemen abgerufen wurden
- API-Integration: Base64-kodierte Daten aus externen APIs verarbeiten
Fehlerbehandlung
Der Node löst Fehler aus, wenn:
- Der Eingabe-Data-Context null ist
- Eine Base64-Zeichenkette ungültige Zeichen enthält (FormatException)
- JSONPath-Ausdrücke ungültig sind
Hinweise zum Verhalten
- UTF-8-Kodierung: Alle dekodierten Zeichenketten verwenden die UTF-8-Zeichenkodierung
- Null-Sicherheit: Null-Werte werden beibehalten, ohne Fehler zu verursachen
- Zeichenkettenkonvertierung: Werte werden vor der Dekodierung in Zeichenketten konvertiert
- Fehlerprotokollierung: Ungültige Base64-Zeichenketten werden mit Pfadinformationen protokolliert
- Speichereffizient: Die Verarbeitung erfolgt pro Objekt, ohne alle Daten auf einmal zu laden
Sicherheitsüberlegungen
- Keine Verschlüsselung: Base64 ist eine Kodierung, keine Verschlüsselung – sie bietet keine Sicherheit
- Sensible Daten: Seien Sie vorsichtig beim Protokollieren dekodierter Werte, die sensible Informationen enthalten
- Validierung: Ziehen Sie in Betracht, dekodierte Werte auf erwartete Formate oder Muster zu validieren
Verwandte Nodes
- Base64Encode@1: Zeichenketten in das Base64-Format kodieren
- ConvertDataType@1: Zwischen verschiedenen Datentypen konvertieren
- FormatString@1: Dekodierte Zeichenketten zur Anzeige formatieren