Zum Hauptinhalt springen

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​

ParameterTypBeschreibung
pathstringJSONPath zu den Objekten, die die Base64-kodierten Daten enthalten
sourcePathstringRelativer Pfad zum Base64-kodierten Wert innerhalb jedes Objekts
targetPathstringRelativer Pfad, unter dem der dekodierte Wert gespeichert wird

Dekodierungsprozess​

Der Node führt die Base64-Dekodierung in diesen Schritten durch:

  1. Objektauswahl: Verwendet path, um Objekte auszuwählen, die kodierte Daten enthalten
  2. Wertabruf: Extrahiert die Base64-kodierte Zeichenkette aus sourcePath
  3. Base64-Dekodierung: Konvertiert die Base64-Zeichenkette in ein Byte-Array
  4. UTF-8-Konvertierung: Konvertiert das Byte-Array zurück in eine UTF-8-Zeichenkette
  5. 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​