Kryptografische Funktionen im Jitterbit Integration Studio
Kryptografische Funktionen werden verwendet, um grundlegende Verschlüsselung und Entschlüsselung mithilfe von Standardalgorithmen und -funktionen 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 ist das Lesen einer vorhandenen Datei (beispielsweise einer 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 übernimmt und sie in einer Zuordnung 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 platzieren und dann die Base64Encode
Funktion auf den Inhalt, bevor er in eine neue Textdatei gespeichert wird.
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 Wertpassphrase
: Passwort zum verschlüsseln der Zeichenfolge mit der FunktionAESEncryption
Optionale Parameter
salt
: Hex-String-Salt, der zum verschlüsseln des Strings mit der Funktion verwendet wirdAESEncryption
keyLength
: Schlüssellänge, die zum verschlüsseln des Strings mit der Funktion verwendet wirdAESEncryption
iterations
: Anzahl der Iterationen, die zum verschlüsseln des Strings mit der Funktion verwendet wurdenAESEncryption
Beschreibung
Diese Funktion entschlüsselt eine mit dem AES-Algorithmus verschlüsselte Zeichenfolge.
Die entschlüsselte Ausgabe wird als Zeichenfolge zurückgegeben. Siehe AESEncryption
für weitere Einzelheiten.
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);
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 Zeichenfolgepassphrase
: 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 256iterations
: Anzahl der Iterationen, die zum Generieren des Schlüssels verwendet wurden; der Standardwert ist 1
Beschreibung
Diese Funktion verschlüsselt eine Zeichenfolge mit dem AES-Algorithmus. Der Schlüssel wird gemäß Password-Based Cryptography Specification Version 2.0 (PKCS5S2) generiert.
Die verschlüsselte Ausgabe ist eine base64-codierte Zeichenfolge. Die Ausgabe von AESEncryption
kann direkt an die Funktion übergeben werden AESDecryption
zur Entschlüsselung, wobei dieselben Parameter verwendet werden wie bei der Verschlüsselung der Klartextzeichenfolge.
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);
Base64Decode
Erklärung
binary Base64Decode(string encryptedText)
Syntax
Base64Decode(<encryptedText>)
Erforderliche Parameter
encryptedText
: Eine base64-kodierte Zeichenfolge
Beschreibung
Dekodiert eine base64-kodierte Zeichenfolge und gibt binäre Daten zurück. Siehe auch Base64Encode
.
Achtung
Bei Verwendung der Agentenversion 11.33 oder früher wird der Base64Decode
Funktion kann einen abgeschnittenen oder falschen Wert zurückgeben, wenn der base64-kodierte String nicht mit =
oder ==
. Bei Verwendung der Agent-Version 11.34 oder höher werden base64-codierte Zeichenfolgen wie vorgesehen behandelt.
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 hinzugefügt. Da viele Implementierungen von Base64 Zeilenumbrüche enthalten, um die maximale Zeilenlänge des codierten Ergebnisses zu begrenzen, sollte dies nur bei Bedarf explizit deaktiviert werden. Um dies zu deaktivieren, setzen Sie die jitterbit.base64.encoded.string.no.wrap
Jitterbit-Variable auf true
vor dem Aufrufen dieser Funktion. Diese Variable wird mit Zeichenfolgendaten unterstützt, wenn Agenten der Version 10.49 und höher verwendet werden, und mit Binärdaten, wenn Agenten der Version 10.x 10.66 und höher und Agenten der Version 11.x 11.4 und höher verwendet werden.
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, der eine Binärdatei zurückgibt. Wenn ein Array von Dateinamen zurückgegeben wird, wird der erste verwendet.
Optionale Parameter
filename
: Ein String-Dateiname, der den von dersourceId
Quelle
Beschreibung
Liest eine Binärdatei aus der angegebenen Quellaktivität und gibt den Inhalt als base64-codierte Zeichenfolge zurück. Diese Methode wird im Allgemeinen für Dateien verwendet, die binär sein könnten. Um eine Textdatei zu lesen, 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. Wenn der Quellfilter mehr als eine Datei auswählt, 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 hinzugefügt. Da viele Implementierungen von Base64 Zeilenumbrüche enthalten, um die maximale Zeilenlänge des codierten Ergebnisses zu begrenzen, sollte dies nur bei Bedarf explizit deaktiviert werden. Um dies zu deaktivieren, setzen Sie die jitterbit.base64.encoded.string.no.wrap
Jitterbit-Variable zu true
vor dem Aufrufen dieser Funktion. Diese Variable wird mit Zeichenfolgendaten unterstützt, wenn Agenten der Version 10.49 und höher verwendet werden, und mit Binärdaten, wenn Agenten der Version 10.x 10.66 und höher und Agenten der Version 11.x 11.4 und höher verwendet werden.
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-Hash-Funktion auf das angegebene Argument an. Der Hash wird als 64-Bit-String aus Hexadezimalzahlen zurückgegeben. Daten, die keine Strings sind, werden zuerst in einen String umgewandelt.
Achtung
Bei Verwendung mit Agenten der Version 10.63 und früher oder 11.1 und früher generiert diese Funktion nicht die richtigen Werte für Binärdateien wie ZIP oder PDF. Dieses Verhalten kann mit der Variable Jitterbit auf spätere Agentenversionen angewendet 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-Hash-Funktion auf eine Eingabezeichenfolge an und gibt das Ergebnis als Array mit zwei 64-Bit-Zahlen zurück. Daten, die keine Zeichenfolgen sind, werden zuerst in eine Zeichenfolge umgewandelt.
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 eine Eingabezeichenfolge an. Der zurückgegebene Hash ist eine Zeichenfolge aus 64 Hexadezimalzahlen.
Wenn die Eingabe eine Zeichenfolge ist, wird sie zuerst in die UTF-8-Bytedarstellung konvertiert. Nicht-Zeichenfolgendaten werden zuerst in eine Zeichenfolge konvertiert.
Achtung
Bei Verwendung mit Agenten der Version 10.63 und früher oder 11.1 und früher generiert diese Funktion nicht die richtigen Werte für Binärdateien wie ZIP oder PDF. Dieses Verhalten kann mit der Variable Jitterbit auf spätere Agentenversionen angewendet werden $jitterbit.md5.hash.use.file.mode.string.only
.
Beispiele
SHA256("hello world!");
// Returns "7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9"