Zum Inhalt springen

Verwandeln Sie Ihre Kontakte in Urlaubsgeld mit unserem neuen Kundenempfehlungsprogramm! Erfahren Sie mehr

Kryptografische Funktionen im Jitterbit Integration Studio

Kryptografische Funktionen werden verwendet, um mithilfe von Standardalgorithmen und -funktionen eine grundlegende Verschlüsselung und Entschlüsselung durchzuführen.

Lesen und Schreiben von Dateien mit Base64

Die Base64 -Funktionen können beim Lesen und Schreiben von Dateien gemäß den folgenden gängigen Szenarien verwendet werden:

Ein Szenario besteht darin, eine vorhandene Datei (z. B. eine PDF-Datei) mit dem Base64EncodeFile -Funktion und schreiben Sie dann den Inhalt dieser Datei in einen Endpoint, beispielsweise Salesforce.

Erstellen Sie dazu ein Script, das die Datei aus einer Quelle liest und entsprechende globale Variablen setzt. Anschließend erstellen Sie eine Transformation, die diese globalen Variablen in einem Mapping verwendet, um in Salesforce zu schreiben:

// Read a PDF File
$docName = "Test.pdf";
$fileContents = Base64EncodeFile("<TAG>activity:ftp/FTP Endpoint/ftp_read/FTP Files</TAG>", $docName);
$docLength = Length($fileContents);
$docType = "pdf";
$mimeType = "application/pdf";

Ein zweites Szenario besteht darin, aus einer Datei zu lesen, den Inhalt in eine Variable zu übertragen und dann die Base64Encode Funktion auf den Inhalt vor dem Speichern in einer neuen Textdatei.

AESDecryption

Erklärung

string AESDecryption(string encryptedText, string passphrase[, string salt, int keyLength, int iterations])

Syntax

AESDecryption(<encryptedText>, <passphrase>[, <salt>, <keyLength>, <iterations>])

Erforderliche Parameter

  • encryptedText: Ein Base64-kodierter AES-verschlüsselter Wert
  • passphrase: Passwort zum verschlüsseln der Zeichenfolge mit dem AESEncryption Funktion

Optionale Parameter

  • salt: Hex-String-Salt, der zum verschlüsseln des Strings mit dem AESEncryption Funktion
  • keyLength: Schlüssellänge, die zum verschlüsseln der Zeichenfolge mit dem AESEncryption Funktion
  • iterations: Anzahl der Iterationen, die zum verschlüsseln der Zeichenfolge mit dem AESEncryption Funktion

Beschreibung

Diese Funktion entschlüsselt eine Zeichenfolge, die mit dem AESEncryption AES-Algorithmus der Funktion.

Die entschlüsselte Ausgabe wird als Zeichenfolge zurückgegeben. Siehe AESEncryption für weitere Details.

Hinweis

Um mit einem AES-Algorithmus verschlüsselten Text mit OpenSSL 3 zu entschlüsseln, setzen Sie jitterbit.scripting.aes.default Zu true davorlegende dieser Funktion. Diese Variable wird bei Verwendung der Agent-Versionen 11.42 oder höher unterstützt.

Alternativ AESDecryptionEx unterstützt standardmäßig die OpenSSL 3 AES-Entschlüsselung bei Verwendung der Agent-Versionen 11.42 oder höher.

Beispiele

// Encrypting a string
encrypted = AESEncryption("Hello world!", "password");
// Decrypted as "Hello world!"
decrypted = AESDecryption(encrypted, "password");

// Encrypting (and decrypting) a string using
// a passphrase and salt, 256-bit key, and 1024 iterations
encrypted = AESEncryption("Hello world!", "password", "00FFAE01", 256, 1024);
decrypted = AESDecryption(encrypted, "password", "00FFAE01", 256, 1024);

AESDecryptionEx

Erklärung

string AESDecryptionEx(string encryptedText, string key[, string iv, int keyLength>])

Syntax

AESDecryptionEx(<encryptedText>, <key>[, <iv>, <keyLength>])

Erforderliche Parameter

  • encryptedText: Eine Base64-kodierte, OpenSSL 3-unterstützte AES-verschlüsselte Zeichenfolge
  • key: Der zum verschlüsseln verwendete Schlüssel encryptedText

Optionale Parameter

  • iv: Der 16-Byte-Initialisierungsvektor (IV) zum verschlüsseln encryptedText- keyLength: Die Schlüssellänge, die zum verschlüsseln verwendet wird encryptedText

Beschreibung

Diese Funktion entschlüsselt eine mit einem AES-Algorithmus verschlüsselte Zeichenfolge unter Verwendung von OpenSSL 3. Dies umfasst Text, der außerhalb der Jitterbit Harmony-Plattform verschlüsselt wurde, und Text, der mit dem AESEncryptionEx Funktion. Diese Funktion wird ab Agentenversion 11.42 unterstützt.

Die entschlüsselte Ausgabe wird als Zeichenfolge zurückgegeben. Siehe AESEncryptionEx zur Verschlüsselung.

Beispiele

// Encrypting (and decrypting) a string using a 128-bit key and 16-byte IV
encrypted = AESEncryptionEx("Hello world!", "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);
decrypted = AESDecryptionEx(encrypted, "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);

AESEncryption

Erklärung

string AESEncryption(string plainText, string passphrase[, string salt, int keyLength, int iterations])

Syntax

AESEncryption(<plainText>, <passphrase>[, <salt>, <keyLength>, <iterations>])

Erforderliche Parameter

  • plainText: Eine zu verschlüsselnde Zeichenfolge
  • passphrase: Passwort, das zum verschlüsseln der Zeichenfolge verwendet werden soll

Optionale Parameter

  • salt: Hex-String-Salt, der zum verschlüsseln des Strings verwendet wird; falls angegeben, muss der Wert im Hex-Format angegeben werden (z. B. "A034DD")
  • keyLength: Die Schlüssellänge, die zum verschlüsseln der Zeichenfolge verwendet werden soll. Sie muss 128, 192 oder 256 betragen; der Standardwert ist 256
  • iterations: Anzahl der Iterationen zur Schlüsselgenerierung; der Standardwert ist 1.

Beschreibung

Diese Funktion verschlüsselt eine Zeichenfolge mit einem AES-Algorithmus, der mit entschlüsselt werden kann AESDecryption-Funktion. Der Schlüssel wird gemäß Password-Based Cryptography Specification Version 2.0 (PKCS5S2) generiert.

Die verschlüsselte Ausgabe ist ein Base64-kodierter String. Die Ausgabe von AESEncryption kann direkt an die AESDecryption Funktion zur Entschlüsselung mit denselben Parametern wie bei der Verschlüsselung des Klartextes.

Notiz

Um Text mit einem AES-Algorithmus unter Verwendung von OpenSSL 3 zu verschlüsseln, setzen Sie jitterbit.scripting.aes.default Zu true davorlegende dieser Funktion. Diese Variable wird bei Verwendung der Agent-Versionen 11.42 oder höher unterstützt.

Alternativ AESEncryptionEx unterstützt standardmäßig die OpenSSL 3 AES Verschlüsselung, wenn Agent-Versionen 11.42 oder höher verwendet werden.

Beispiele

// Encrypting a string
encrypted = AESEncryption("Hello world!", "password");
// Decrypted as "Hello world!"
decrypted = AESDecryption(encrypted, "password");

// Encrypting (and decrypting) a string using
// a passphrase and salt, 256-bit key, and 1024 iterations
encrypted = AESEncryption("Hello world!", "password", "00FFAE01", 256, 1024);
decrypted = AESDecryption(encrypted, "password", "00FFAE01", 256, 1024);

AESEncryptionEx

Erklärung

string AESEncryptionEx(string plainText, string key[, string iv, int keyLength])

Syntax

AESEncryptionEx(<plainText>, <key>[, <iv>, <keyLength>])

Erforderliche Parameter

  • plainText: Die zu verschlüsselnde Zeichenfolge
  • key: Der Schlüssel, der zum verschlüsseln verwendet werden soll plainText

Optionale Parameter

  • iv: Der 16-Byte-Initialisierungsvektor (IV) zum verschlüsseln plainText; ein Fehler wird ausgegeben, wenn der IV nicht 16 Bytes lang ist.
  • keyLength: Die Schlüssellänge, die zum verschlüsseln verwendet wird plainText Der Wert muss 128, 192 oder 256 sein; der Standardwert ist 256.

Beschreibung

Diese Funktion verschlüsselt eine Zeichenfolge mit einem AES-Algorithmus unter Verwendung von OpenSSL 3. Diese Funktion wird ab Agent-Version 11.42 unterstützt.

Die verschlüsselte Ausgabe ist eine OpenSSL 3-unterstützte, Base64-kodierte Zeichenfolge. Die Ausgabe von AESEncryptionEx kann direkt an die AESDecryptionEx-Funktion oder außerhalb der Jitterbit Harmony Plattform zur Entschlüsselung, wobei dieselben Parameter wie bei der Verschlüsselung der Klartextzeichenfolge verwendet werden.

Beispiele

// Encrypting (and decrypting) a string using a 128-bit key and 16-byte IV
encrypted = AESEncryptionEx("Hello world!", "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);
decrypted = AESDecryptionEx(encrypted, "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);

Base64Decode

Erklärung

binary Base64Decode(string encryptedText)

Syntax

Base64Decode(<encryptedText>)

Erforderliche Parameter

  • encryptedText: Eine Base64-kodierte Zeichenfolge

Beschreibung

Dekodiert einen Base64-kodierten String und gibt Binärdaten zurück. Siehe auch Base64Encode.

Achtung

Bei Verwendung der Agentenversion 11.33 oder früher ist die Base64Decode Funktion kann einen abgeschnittenen oder falschen Wert zurückgeben, wenn die Base64-codierte Zeichenfolge nicht mit = oder == Bei Verwendung der Agent-Version 11.34 oder höher werden Base64-codierte Zeichenfolgen wie vorgesehen verarbeitet.

Beispiele

// Encrypting a string after first converting it to binary
binary = HexToBinary(StringToHex("Hello world!"));
encrypted = Base64Encode(binary);

decrypted = Base64Decode(encrypted);
result = HexToString(BinaryToHex(decrypted));
// Returns original string "Hello world!"

Base64Encode

Erklärung

string Base64Encode(type arg)

Syntax

Base64Encode(<arg>)

Erforderliche Parameter

  • arg: Zu kodierender Wert

Beschreibung

Kodiert die Argumentdaten und behandelt die Zeichen in einer Zeichenfolge als Binärdaten, sofern die Eingabe nicht bereits binär ist. Wenn der Typ des Arguments weder binär noch eine Zeichenfolge ist, wird der Argumentwert vor der Verschlüsselung zunächst in eine Zeichenfolge konvertiert.

Ein Zeilenumbruchzeichen (\n) wird nach jedem 64. Zeichen des codierten Ergebnisstrings eingefügt. Da viele Base64 -Implementierungen Zeilenumbrüche verwenden, um die maximale Zeilenlänge des codierten Ergebnisses zu begrenzen, sollte dies nur bei Bedarf explizit deaktiviert werden. Um dies zu deaktivieren, setzen Sie den jitterbit.base64.encoded.string.no.wrap Jitterbit-Variable zu true vor dem Aufruf dieser Funktion. Diese Variable wird mit String-Daten bei Verwendung von Agenten ab Version 10.49 und mit Binärdaten bei Verwendung von Agenten ab Version 10.x (10.66) und Agenten ab Version 11.x (11.4) unterstützt.

Siehe auch Base64Decode.

Beispiele

// Encrypting a string after first converting it to binary
binary = HexToBinary(StringToHex("Hello world!"));
encrypted = Base64Encode(binary);

decrypted = Base64Decode(encrypted);
result = HexToString(BinaryToHex(decrypted));
// Returns original string "Hello world!"

encrypted = Base64Encode(Now());
decrypted = Base64Decode(encrypted);
result = HexToString(BinaryToHex(decrypted));
// Returns a date string such as "2017-12-14 01:25:31"

// Encrypting credentials for use in an HTTP header
Base64Encode("exampleuser"+":"+"examplepassword")

Base64EncodeFile

Erklärung

string Base64EncodeFile(string sourceId[, string filename])

Syntax

Base64EncodeFile(<sourceId>[, <filename>])

Erforderliche Parameter

  • sourceId: Ein String-Referenzpfad zu einer Aktivität, die mit einem Dateityp-Endpoint im aktuellen Projekt verknüpft ist und eine Binärdatei zurückgibt. Wenn ein Array von Dateinamen zurückgegeben wird, wird der erste verwendet.

Optionale Parameter

  • filename: Ein String-Dateiname, der zum Überschreiben des vom sourceId Quelle

Beschreibung

Liest eine Binärdatei aus der angegebenen Quellaktivität und gibt den Inhalt als Base64-codierten String zurück. Diese Methode wird im Allgemeinen für Dateien verwendet, die binär sein könnten. Zum Lesen einer Textdatei verwenden Sie die Funktion ReadFile stattdessen.

Die in dieser Funktion verwendete Quelle muss als Aktivität definiert sein, die mit einem Dateityp-Endpoint im aktuellen Projekt verknüpft ist. Dazu gehören konfigurierte Aktivitäten für Dateifreigabe, FTP, HTTP, lokalen Speicher und temporären Speicher. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpoints unter Endpoints Abschnitt in Jitterbit Script.

Diese Methode gibt den Inhalt der Datei zurück, auf die die angegebene Quelle verweist. Wählt der Quellfilter mehrere Dateien aus, wird die erste verwendet. Es wird empfohlen, eine Quelle anzugeben, die eine einzelne Datei eindeutig identifiziert.

Der zweite Parameter, filename ist optional und kann verwendet werden, um den in der Aktivitätskonfiguration zurückgegebenen Dateinamen zu überschreiben. Alternativ kann eine globale Variable verwendet werden, um den Dateinamen in der Aktivitätskonfiguration zu überschreiben. Globale Variablen werden wie folgt referenziert: [de_name]in der Aktivitätskonfiguration.

Wenn eine Datei nicht gefunden wird, wird ein Fehler ausgelöst.

Ein Zeilenumbruchzeichen (\n) wird nach jedem 64. Zeichen des codierten Ergebnisstrings eingefügt. Da viele Base64 -Implementierungen Zeilenumbrüche verwenden, um die maximale Zeilenlänge des codierten Ergebnisses zu begrenzen, sollte dies nur bei Bedarf explizit deaktiviert werden. Um dies zu deaktivieren, setzen Sie den jitterbit.base64.encoded.string.no.wrap Jitterbit-Variable zu true vor dem Aufruf dieser Funktion. Diese Variable wird mit String-Daten bei Verwendung von Agenten ab Version 10.49 und mit Binärdaten bei Verwendung von Agenten ab Version 10.x (10.66) und Agenten ab Version 11.x (11.4) unterstützt.

Siehe auch Base64Decode.

Beispiele

// Reads the first file found at the source
// "FTP Files" and returns it as a Base64-encoded string
fileContents1 = Base64EncodeFile("<TAG>activity:ftp/FTP Endpoint/ftp_read/FTP Files</TAG>");

// Reads the binary file called
// "requirements.doc" from the FTP directory
// defined by the source "FTP Files"
fileContents2 = Base64EncodeFile("<TAG>activity:ftp/FTP Endpoint/ftp_read/FTP Files</TAG>", "requirements.doc");

// Decodes the file contents; they can now be
// re-written as a binary file to another target
fileContents2Decoded = Base64Decode(fileContents2);

MD5

Erklärung

string MD5(type arg)

Syntax

MD5(<arg>)

Erforderliche Parameter

  • arg: Zu hashender Wert

Beschreibung

Wendet die MD5-Hashfunktion auf das angegebene Argument an. Der Hash wird als 64-Bit-String aus Hexadezimalzahlen zurückgegeben. Daten, die keine Strings sind, werden zunächst in einen String umgewandelt.

Achtung

Bei Verwendung mit Agenten der Versionen 10.63 und früher sowie 11.1 und früher generiert diese Funktion nicht die korrekten Werte für Binärdateien wie ZIP oder PDF. Dieses Verhalten kann mit der Variable „Jitterbit“ auf spätere Agentenversionen übertragen werden $jitterbit.md5.hash.use.file.mode.string.only.

Beispiele

MD5("hello world!");
// Returns "fc3ff98e8c6a0d3087d515c0473f8677"

MD5AsTwoNumbers

Erklärung

array MD5AsTwoNumbers(type arg)

Syntax

MD5AsTwoNumbers(<arg>)

Erforderliche Parameter

  • arg: Zu hashender Wert

Beschreibung

Wendet die MD5-Hashfunktion auf einen Eingabestring an und gibt das Ergebnis als Array mit zwei 64-Bit-Zahlen zurück. Daten, die keine Strings sind, werden zunächst in einen String konvertiert.

Beispiele

MD5AsTwoNumbers("hello world!");
// Returns "{8612640914790536583, 3462540840444444668}"

SHA256

Erklärung

string SHA256(type arg)

Syntax

SHA256(<arg>)

Erforderliche Parameter

  • arg: Zu hashender Wert

Beschreibung

Wendet die SHA-256-Hashfunktion auf einen Eingabestring an. Der zurückgegebene Hash ist eine Zeichenfolge mit 64 Hexadezimalzahlen.

Wenn die Eingabe ein String ist, wird dieser zunächst in die UTF-8-Byte-Darstellung konvertiert. Daten, die keine Strings sind, werden zunächst in einen String konvertiert.

Achtung

Bei Verwendung mit Agenten der Versionen 10.63 und früher sowie 11.1 und früher generiert diese Funktion nicht die korrekten Werte für Binärdateien wie ZIP oder PDF. Dieses Verhalten kann mit der Variable „Jitterbit“ auf spätere Agentenversionen übertragen werden $jitterbit.md5.hash.use.file.mode.string.only.

Beispiele

SHA256("hello world!");
// Returns "7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9"