Base64-Verschlüsselung

Siehe auch: Base64-Entschlüsselung

Wertauflöser - Kurzfassung

Zweck: Liefert den Base64-codierten String zu einem geeigneten Eingabewert ("Inhalt", "Dokument", "Dateiinformation", "Dateireferenz", String).

images/download/attachments/153256181/image-2024-6-11_7-28-55-version-1-modificationdate-1718083734514-api-v2.png

Der Base64-Verschlüsselung-Wertauflöser liefert den Base64-codierten String zu einem geeigneten Eingabewert.

  • Als Eingabewert wird ein "Inhalt" (Content)-Datenobjekt erwartet, wobei ausgehend von folgenden Datentypen eine automatische Typumwandlung erfolgt:

  • Für alle anderen Datentypen als Eingabewert lautet der Rückgabewert immer "Kein Wert" ($null).

Hintergrund: Base64-Codierung

Der Base64-Code ist keine Verschlüsselung im kryptographischen Sinn. Es handelt sich lediglich um eine Abbildungsvorschrift zur Umwandlung von Binärdaten, durch die eine Folge von Bytes (Gruppen von 8 Bits) in einen Zeichensatz mit 64 "lesbaren" und gängigen Schriftzeichen ([A-Z][a-z][0-9]+/) übertragen wird.

Da 6-Bit nötig sind, um 64 Zeichen unterscheiden zu können, bildet eine Gruppe von 4 Base64-Codes (4 x 6bit = 24bit) je 3 unverschlüsselte Bytes bzw. auch Buchstaben eines ASCII-Texts ab.

Beispiel: Text: ABC → ASCII-Byte-Sequenz: {65, 66, 67}
→ Bits gruppiert á 8: {01000001, 01000010, 01000011}
→ Bits gruppiert á 6: {010000, 010100, 001001, 000011}
→ Base64-Wert/Code: {16/Q, 20/U, 9/J, 3/D} → Base64-Code: QUJD

HINWEIS◄ Am Ende des Rückgabewerts können bis zu zwei Ist-Gleich-Zeichen (=) erscheinen, die nicht im Base64-Zeichensatzes enthalten sind und nur als Füllzeichen dienen, falls das 3 : 4-Ersetzungsschema aufgrund der Länge des Eingabewerts nicht komplett ausgeschöpft wird.
Beispiel: Text AB{01000001, 01000010} → {010000, 010100, 001000, } → {16/Q, 20/U, 8/I, } → QUI=

Beispiel

In den Body einer E-Mail-Nachricht im HTML -Format soll eine Logo-Bilddatei eingebunden werden, die über den Dateimanager von Lobster Data Platform / Orchestration im Server-Filesystem hinterlegt wurde.

Der Inhalt der kleinen Bilddatei für das "Logo" soll nicht referenziert sondern über das Base64-Format direkt als Nutzlast für das src-Attribut eines img-Elements bereitgestellt werden.

Der HTML-Code für das img-Element soll vorab in einer Variablen mit dem Namen image bereitgestellt werden, auf die beim Zusammenstellen des E-Mail-Bodys (ggf. mehrfach) zugegriffen werden kann:

<img style="height:50px" src="data:<type>;charste:utf-8;base64,<Base64data>" alt="<fileName>" />

  • <type> repräsentiert den Inhaltstyp der Datei (als String, z. B. image/png).

  • <Base64data> definiert den Base64-codierten Dateiinhalt.

  • <fileName> definiert den Dateinamen, der als Platzhalter erscheint, falls die Datei nicht darstellbar ist.

Konfiguration:

Der Screenshot rechts zeigt eine Ausführen mit-Ereignisaktion, die die einzubindende Datei im Objekt-Wertauflöser als temporäres Bezugsobjekt über einen Dateireferenz-Wertauflöser definiert.

Für den Aktionsblock steht damit der "Inhalt" (Content) der Datei als komplexes Datenobjekt zur Verfügung, dessen Detaildaten wir über einen Textverkettung-Wertauflöser in die oben definierte HTML-Struktur für das img-Element überführen:

  • Dier erste, statische Textkomponente eröffnet den Tag, setzt per style-Attribut Formate und eröffnet dann den Textabschnitt für das src-Attribut mit dem Schlüsselwort "data:", das signalisiert, dass Bilddaten nachfolgen und nicht etwa ein Link.

  • In der zweiten Textkomponente greifen wir auf das mediaType-Feld des "Inhalt"-Objekts zu, dessen Wert direkt übernommen werden kann, um das Format der nachfolgenden Daten zu deklarieren.

  • Die folgende statische Textkomponente deklariert das verwendete Encoding (utf-8) und leitet dann den Base64-Abschnitt für den Dateiinhalt ein.

    WICHTIG◄ Nach dem Schlüsselwort base64 folgt ein Komma als Separator und nicht wie vorher ein Strichpunkt.

  • Die folgende statische Textkomponente leitet zum alt-Attribut über, dem der Wert aus dem name-Feld des "Inhalt"-Objekts zugewiesen wird, bevor eine weitere statische Textkomponente das Attribut und das Element abschließt.

images/download/attachments/153256181/image-2024-6-11_7-26-57-version-1-modificationdate-1718083617196-api-v2.png