Saltar al contenido

Funciones criptográficas en Jitterbit Design Studio

Las funciones criptográficas se utilizan para realizar cifrado y descifrado básicos utilizando algoritmos y funciones estándar.

Leer y escribir archivos usando Base-64

Las funciones Base64 se pueden utilizar al leer y escribir archivos, siguiendo estos escenarios comunes:

Un escenario es leer un archivo existente (quizás un PDF) usando el Base64EncodeFile función y luego escribir el contenido de ese archivo en un extremo, como Salesforce.

Para ello, cree un secuencia de comandos que lea el archivo desde una fuente y establezca las variables globales adecuadas. Luego, deberá crear una transformación que tome estas variables globales y las utilice en una asignación para escribir en Salesforce:

// Read a PDF File
$docName = "Test.pdf";
$fileContents = Base64EncodeFile("<TAG>Sources/PDF Files</TAG>", $docName);
$docLength = Length($fileContents);
$docType = "pdf";
$mimeType = "application/pdf";

Un segundo escenario es leer desde un archivo, colocar el contenido en una variable y luego usar el Base64Encode función sobre el contenido antes de guardarlo en un nuevo archivo de texto.

AESDecryption

Declaración

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

Sintaxis

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

Parámetros necesarios

  • encryptedText: Un valor cifrado AES codificado en base64
  • passphrase: Contraseña utilizada para cifrar la cadena con la función AESencryption

Parámetros opcionales

  • salt: Sal de cadena hexadecimal utilizada para cifrar la cadena con la función AESencryption
  • keyLength: Longitud de la clave utilizada para cifrar la cadena con la función AESencryption
  • iterations: Número de iteraciones utilizadas para cifrar la cadena con la función AESencryption

Descripción

Esta función descifra una cadena cifrada con el algoritmo AES.

La salida descifrada se devuelve como una cadena. Ver AESEncryption Para más detalles.

Ejemplos

// 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

Declaración

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

Sintaxis

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

Parámetros necesarios

  • plainText: Una cadena que se va a cifrar
  • passphrase: Contraseña que se utilizará para cifrar la cadena

Parámetros opcionales

  • salt: Sal de cadena hexadecimal utilizada para cifrar la cadena; si se especifica, el valor debe proporcionarse en formato hexadecimal (como "A034DD")**
  • keyLength: Longitud de clave que se utilizará para cifrar la cadena y debe ser 128, 192 o 256; el valor predeterminado es 256
  • iterations: Número de iteraciones utilizadas para generar la clave; el valor predeterminado es 1

Descripción

Esta función encripta una cadena utilizando el algoritmo AES. La clave se genera de acuerdo con la Especificación de criptografía basada en contraseñas versión 2.0 (PKCS5S2).

La salida cifrada es una cadena codificada en base64. La salida de AESEncryption se puede pasar directamente a la función AESDecryption Para descifrar, se utilizan los mismos parámetros que cuando se cifró la cadena de texto sin formato.

Ejemplos

// 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

Declaración

binary Base64Decode(string encryptedText)

Sintaxis

Base64Decode(<encryptedText>)

Parámetros necesarios

  • encryptedText: Una cadena codificada en base64

Descripción

Decodifica una cadena codificada en base64 y devuelve datos binarios. Véase también Base64Encode.

Precaución

Al utilizar la versión 11.33 o anterior del agente, Base64DecodeLa función puede devolver un valor truncado o incorrecto cuando la cadena codificada en base64 no se adjunta con = o == Al utilizar la versión 11.34 o posterior del agente, las cadenas codificadas en base64 se manejan según lo previsto.

Ejemplos

// 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

Declaración

string Base64Encode(type arg)

Sintaxis

Base64Encode(<arg>)

Parámetros necesarios

  • arg: Valor a codificar

Descripción

Codifica los datos del argumento y trata los caracteres de una cadena como datos binarios, a menos que la entrada ya sea binaria. Si el tipo del argumento no es binario ni una cadena, el valor del argumento se convierte primero en una cadena antes del cifrado.

Un carácter de nueva línea (\n) se agrega después de cada 64.º carácter de la cadena de resultado codificada. Como muchas implementaciones de Base64 incluyen saltos de línea para limitar la longitud máxima de línea del resultado codificado, esto debe deshabilitarse explícitamente solo cuando sea necesario. Para deshabilitarlo, configure el jitterbit.base64.encoded.string.no.wrap Variable Jitterbit a true antes de llamar a esta función. Esta variable es compatible con datos de cadena cuando se utilizan agentes de la versión 10.49 y posteriores, y con datos binarios cuando se utilizan agentes de la versión 10.x 10.66 y posteriores y agentes de la versión 11.x 11.4 y posteriores.

Consulte también Base64Decode.

Ejemplos

// 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

Declaración

string Base64EncodeFile(string sourceId[, string filename])

Sintaxis

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

Parámetros necesarios

  • sourceId: Una fuente de cadena en el proyecto actual que devuelve un archivo binario. Si se devuelve una matriz de nombres de archivos, se utiliza el primero.

Parámetros opcionales

  • filename: Un nombre de archivo de cadena utilizado para anular el valor devuelto por el sourceId fuente

Descripción

Lee un archivo binario de la fuente especificada y devuelve el contenido como una cadena codificada en base64. Este método se utiliza generalmente para archivos que pueden ser binarios. Para leer un archivo de texto, utilice la función ReadFile En su lugar.

La fuente del tipo de archivo que se utiliza en esta función debe estar definida como una fuente en el proyecto actual. Consulte las instrucciones sobre insertar elementos del proyecto.

Este método devuelve el contenido del archivo al que apunta la fuente especificada. Si el filtro de fuente selecciona más de un archivo, se utilizará el primero. Se recomienda especificar una fuente que identifique de forma única un solo archivo.

El segundo parámetro, filename, es opcional y se puede utilizar para anular el nombre de archivo devuelto en la definición de origen. Alternativamente, se puede utilizar una variable global para anular el nombre de archivo en la definición de origen. Las variables globales se referencian como [de_name] en la definición de origen.

Si no se encuentra un archivo, se generará un error.

Un carácter de nueva línea (\n) se agrega después de cada 64.º carácter de la cadena de resultado codificada. Como muchas implementaciones de Base64 incluyen saltos de línea para limitar la longitud máxima de línea del resultado codificado, esto debe deshabilitarse explícitamente solo cuando sea necesario. Para deshabilitarlo, configure el jitterbit.base64.encoded.string.no.wrap Variable Jitterbit a true antes de llamar a esta función. Esta variable es compatible con datos de cadena cuando se utilizan agentes de la versión 10.49 y posteriores, y con datos binarios cuando se utilizan agentes de la versión 10.x 10.66 y posteriores y agentes de la versión 11.x 11.4 y posteriores.

Consulte también Base64Decode.

Ejemplos

// Reads the first file found at the source "Word Documents FTP"
// and returns it as base64-encoded string
fileContents1 = Base64EncodeFile("<TAG>Sources/Word Documents FTP</TAG>");

// Reads the binary file called "requirements.doc" from
// the FTP directory defined by the source "Word Documents FTP"
fileContents2 = Base64EncodeFile("<TAG>Sources/Word Documents FTP</TAG>",
    "requirements.doc");
// Decodes the file contents; they can now be re-written
// as a binary file to another target
fileContents2Decoded = Base64Decode(fileContents2);

MD5

Declaración

string MD5(type arg)

Sintaxis

MD5(<arg>)

Parámetros necesarios

  • arg: Valor a codificar

Descripción

Aplica la función hash MD5 al argumento suministrado. El hash se devuelve como una cadena de 64 bits de números hexadecimales. Los datos que no sean cadenas se convertirán primero en cadenas.

Precaución

Cuando se utiliza con agentes de la versión 10.63 y anteriores o 11.1 y anteriores, esta función no genera los valores correctos para archivos binarios como ZIP o PDF. Este comportamiento se puede aplicar a versiones posteriores del agente mediante la variable Jitterbit $jitterbit.md5.hash.use.file.mode.string.only.

Ejemplos

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

MD5AsTwoNumbers

Declaración

array MD5AsTwoNumbers(type arg)

Sintaxis

MD5AsTwoNumbers(<arg>)

Parámetros necesarios

  • arg: Valor a codificar

Descripción

Aplica la función hash MD5 a una cadena de entrada y devuelve el resultado como una matriz con dos números de 64 bits. Los datos que no sean cadenas se convertirán primero en cadenas.

Ejemplos

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

SHA256

Declaración

string SHA256(type arg)

Sintaxis

SHA256(<arg>)

Parámetros necesarios

  • arg: Valor a codificar

Descripción

Aplica la función hash SHA-256 a una cadena de entrada. El hash devuelto es una cadena de 64 números hexadecimales.

Si la entrada es una cadena, primero se convertirá a la representación de bytes UTF-8. Los datos que no sean cadenas se convertirán primero a una cadena.

Precaución

Cuando se utiliza con agentes de la versión 10.63 y anteriores o 11.1 y anteriores, esta función no genera los valores correctos para archivos binarios como ZIP o PDF. Este comportamiento se puede aplicar a versiones posteriores del agente mediante la variable Jitterbit $jitterbit.md5.hash.use.file.mode.string.only.

Ejemplos

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