Funções Criptográficas no Jitterbit Design Studio
Funções criptográficas são usadas para realizar criptografia e descriptografia básicas usando algoritmos e funções padrão.
Ler e escrever arquivos usando Base-64
As funções Base64 podem ser usadas ao ler e escrever arquivos, seguindo estes cenários comuns:
Um cenário é ler um arquivo existente (talvez um PDF) usando a função Base64EncodeFile e, em seguida, escrever o conteúdo desse arquivo em um endpoint, como o Salesforce.
Para fazer isso, crie um script que leia o arquivo de uma fonte e defina variáveis globais apropriadas. Você então criaria uma transformação que pega essas variáveis globais e as usa em um mapeamento para escrever no Salesforce:
// Read a PDF File
$docName = "Test.pdf";
$fileContents = Base64EncodeFile("<TAG>Sources/PDF Files</TAG>", $docName);
$docLength = Length($fileContents);
$docType = "pdf";
$mimeType = "application/pdf";
Um segundo cenário é ler de um arquivo, colocando o conteúdo em uma variável, e então usar a função Base64Encode no conteúdo antes de salvar em um novo arquivo de texto.
AESDecryption
Declaração
string AESDecryption(string encryptedText, string passphrase[, string salt, int keyLength, int iterations])
Sintaxe
AESDecryption(<encryptedText>, <passphrase>[, <salt>, <keyLength>, <iterations>])
Parâmetros obrigatórios
encryptedText: Um valor AES criptografado codificado em Base64passphrase: Senha usada para criptografar a string com a funçãoAESEncryption
Parâmetros opcionais
salt: Sal em string hexadecimal usado para criptografar a string com a funçãoAESEncryptionkeyLength: Comprimento da chave usado para criptografar a string com a funçãoAESEncryptioniterations: Número de iterações usadas para criptografar a string com a funçãoAESEncryption
Descrição
Esta função descriptografa uma string criptografada com o algoritmo AES da função AESEncryption.
A saída descriptografada é retornada como uma string. Veja AESEncryption para detalhes adicionais.
Nota
Para descriptografar texto criptografado com um algoritmo AES usando OpenSSL 3, defina jitterbit.scripting.aes.default como true antes desta função. Esta variável é suportada ao usar versões do agente 11.42 ou posteriores.
Alternativamente, AESDecryptionEx suporta a descriptografia AES do OpenSSL 3 por padrão ao usar versões do agente 11.42 ou posteriores.
Exemplos
// 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
Declaração
string AESDecryptionEx(string encryptedText, string key[, string iv, int keyLength>])
Sintaxe
AESDecryptionEx(<encryptedText>, <key>[, <iv>, <keyLength>])
Parâmetros obrigatórios
encryptedText: Uma string criptografada em AES, suportada pelo OpenSSL 3 e codificada em Base64key: A chave usada para criptografarencryptedText
Parâmetros opcionais
iv: O vetor de inicialização (IV) de 16 bytes usado para criptografarencryptedTextkeyLength: O comprimento da chave usado para criptografarencryptedText
Descrição
Esta função descriptografa uma string criptografada com um algoritmo AES usando OpenSSL 3. Isso inclui texto criptografado fora da plataforma Jitterbit Harmony e texto criptografado usando a função AESEncryptionEx. Esta função é suportada ao usar versões do Design Studio 11.42 ou posteriores e versões do agente 11.42 ou posteriores.
A saída descriptografada é retornada como uma string. Veja AESEncryptionEx para criptografia.
Exemplos
// Criptografando (e descriptografando) uma string usando uma chave de 128 bits e IV de 16 bytes
encrypted = AESEncryptionEx("Hello world!", "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);
decrypted = AESDecryptionEx(encrypted, "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);
AESEncryption
Declaração
string AESEncryption(string plainText, string passphrase[, string salt, int keyLength, int iterations])
Sintaxe
AESEncryption(<plainText>, <passphrase>[, <salt>, <keyLength>, <iterations>])
Parâmetros obrigatórios
plainText: Uma string a ser criptografadapassphrase: Senha a ser usada para criptografar a string
Parâmetros opcionais
salt: Sal em formato hexadecimal usado para criptografar a string; se especificado, o valor deve ser fornecido em formato hexadecimal (como"A034DD")keyLength: Comprimento da chave a ser usado para criptografar a string e deve ser um dos valores 128, 192 ou 256; o padrão é 256iterations: Número de iterações usadas para gerar a chave; o padrão é 1
Descrição
Esta função criptografa uma string usando um algoritmo AES que pode ser descriptografado usando a função AESDecryption. A chave é gerada de acordo com a Especificação de Criptografia Baseada em Senha Versão 2.0 (PKCS5S2).
A saída criptografada é uma string codificada em Base64. A saída de AESEncryption pode ser passada diretamente para a função AESDecryption para descriptografia, usando os mesmos parâmetros que quando a string de texto simples foi criptografada.
Nota
Para criptografar texto com um algoritmo AES usando OpenSSL 3, defina jitterbit.scripting.aes.default como true antes desta função. Esta variável é suportada ao usar versões do agente 11.42 ou posteriores.
Alternativamente, AESEncryptionEx suporta a criptografia AES do OpenSSL 3 por padrão ao usar versões do agente 11.42 ou posteriores.
Exemplos
// 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
Declaração
string AESEncryptionEx(string plainText, string key[, string iv, int keyLength])
Sintaxe
AESEncryptionEx(<plainText>, <key>[, <iv>, <keyLength>])
Parâmetros obrigatórios
plainText: A string a ser criptografadakey: A chave a ser usada para criptografarplainText
Parâmetros opcionais
iv: O vetor de inicialização (IV) de 16 bytes usado para criptografarplainText; um erro é gerado se o IV não tiver 16 byteskeyLength: O comprimento da chave usado para criptografarplainTexte deve ser um dos valores 128, 192 ou 256; o padrão é 256
Descrição
Esta função criptografa uma string usando um algoritmo AES com OpenSSL 3. Esta função é suportada ao usar versões do Design Studio 11.42 ou posteriores e versões do agente 11.42 ou posteriores.
A saída criptografada é uma string codificada em Base64 suportada pelo OpenSSL 3. A saída de AESEncryptionEx pode ser passada diretamente para a função AESDecryptionEx ou fora da plataforma Jitterbit Harmony para descriptografia, usando os mesmos parâmetros que foram usados quando a string de texto simples foi criptografada.
Exemplos
// Criptografando (e descriptografando) uma string usando uma chave de 128 bits e IV de 16 bytes
encrypted = AESEncryptionEx("Hello world!", "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);
decrypted = AESDecryptionEx(encrypted, "123456ZYXWVUTSRQ", "12345XYZ12345XYZ", 128);
Base64Decode
Declaração
binary Base64Decode(string encryptedText)
Sintaxe
Base64Decode(<encryptedText>)
Parâmetros obrigatórios
encryptedText: Uma string codificada em Base64
Descrição
Decodifica uma string codificada em Base64, retornando dados binários. Veja também Base64Encode.
Atenção
Ao usar a versão do agente 11.33 ou anterior, a função Base64Decode pode retornar um valor truncado ou incorreto quando a string codificada em Base64 não é finalizada com = ou ==. Ao usar a versão do agente 11.34 ou posterior, strings codificadas em Base64 são tratadas conforme o esperado.
Exemplos
// 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
Declaração
string Base64Encode(type arg)
Sintaxe
Base64Encode(<arg>)
Parâmetros obrigatórios
arg: Valor a ser codificado
Descrição
Codifica os dados do argumento, tratando os caracteres em uma string como dados binários, a menos que a entrada já seja binária. Se o tipo do argumento não for binário ou uma string, o valor do argumento é primeiro convertido em uma string antes da criptografia.
Um caractere de nova linha (\n) é adicionado após cada 64º caractere da string de resultado codificada. Como muitas implementações de Base64 incluem novas linhas para limitar o comprimento máximo da linha do resultado codificado, isso deve ser explicitamente desativado apenas quando necessário. Para desativar isso, defina a variável Jitterbit jitterbit.base64.encoded.string.no.wrap como true antes de chamar esta função. Esta variável é suportada com dados de string ao usar agentes 10.49 e posteriores, e com dados binários ao usar agentes 10.x 10.66 e posteriores e agentes 11.x 11.4 e posteriores.
Veja também Base64Decode.
Exemplos
// 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
Declaração
string Base64EncodeFile(string sourceId[, string filename])
Sintaxe
Base64EncodeFile(<sourceId>[, <filename>])
Parâmetros obrigatórios
sourceId: Uma string de origem no projeto atual que retorna um arquivo binário. Se um array de nomes de arquivos for retornado, o primeiro será utilizado.
Parâmetros opcionais
filename: Uma string de nome de arquivo usada para substituir o valor retornado pela origemsourceId
Descrição
Lê um arquivo binário da origem especificada e retorna o conteúdo como uma string codificada em Base64. Este método é geralmente usado para arquivos que podem ser binários. Para ler um arquivo de texto, use a função ReadFile em vez disso.
A origem do tipo de arquivo usada nesta função deve ser definida como uma origem no projeto atual. Veja as instruções sobre inserir itens de projeto.
Este método retorna o conteúdo do arquivo apontado pela origem especificada. Se o filtro da origem selecionar mais de um arquivo, o primeiro será utilizado. Recomenda-se especificar uma origem que identifique exclusivamente um único arquivo.
O segundo parâmetro, filename, é opcional e pode ser usado para substituir o nome do arquivo retornado na definição da origem. Alternativamente, uma variável global pode ser usada para substituir o nome do arquivo na definição da origem. Variáveis globais são referenciadas como [de_name] na definição da origem.
Se um arquivo não for encontrado, um erro será gerado.
Um caractere de nova linha (\n) é adicionado após cada 64º caractere da string de resultado codificada. Como muitas implementações de Base64 incluem novas linhas para limitar o comprimento máximo da linha do resultado codificado, isso deve ser explicitamente desativado apenas quando necessário. Para desativar isso, defina a variável Jitterbit jitterbit.base64.encoded.string.no.wrap como true antes de chamar esta função. Esta variável é suportada com dados de string ao usar agentes 10.49 e posteriores, e com dados binários ao usar agentes 10.x 10.66 e posteriores e agentes 11.x 11.4 e posteriores.
Veja também Base64Decode.
Exemplos
// 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
Declaração
string MD5(type arg)
Sintaxe
MD5(<arg>)
Parâmetros obrigatórios
arg: Valor a ser hashado
Descrição
Aplica a função hash MD5 ao argumento fornecido. O hash é retornado como uma string de 32 dígitos hexadecimais. Dados que não são strings serão convertidos para uma string.
Atenção
Quando usado com agentes da versão 10.63 e anteriores ou 11.1 e anteriores, esta função não gera os valores corretos para arquivos binários como ZIP ou PDF. Esse comportamento pode ser aplicado a versões posteriores do agente usando a variável Jitterbit $jitterbit.md5.hash.use.file.mode.string.only.
Exemplos
MD5("hello world!");
// Retorna "fc3ff98e8c6a0d3087d515c0473f8677"
MD5AsTwoNumbers
Declaração
array MD5AsTwoNumbers(type arg)
Sintaxe
MD5AsTwoNumbers(<arg>)
Parâmetros obrigatórios
arg: Valor a ser hashado
Descrição
Aplica a função hash MD5 a uma string de entrada e retorna o resultado como um array com dois números de 64 bits. Dados que não são strings serão convertidos para uma string.
Exemplos
MD5AsTwoNumbers("hello world!");
// Retorna "{8612640914790536583, 3462540840444444668}"
SHA256
Declaração
string SHA256(type arg)
Sintaxe
SHA256(<arg>)
Parâmetros obrigatórios
arg: Valor a ser hashado
Descrição
Aplica a função de hash SHA-256 a uma string de entrada. O hash retornado é uma string de 64 dígitos hexadecimais.
Se a entrada for uma string, ela será primeiro convertida para a representação em bytes UTF-8. Dados que não são strings serão primeiro convertidos para uma string.
Atenção
Quando usado com agentes da versão 10.63 ou anterior ou 11.1 ou anterior, esta função não gera os valores corretos para arquivos binários como ZIP ou PDF. Esse comportamento pode ser aplicado a versões posteriores do agente usando a variável Jitterbit $jitterbit.md5.hash.use.file.mode.string.only.
Exemplos
SHA256("hello world!");
// Returns "7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9"
SHA512
Declaração
string SHA512(type arg)
Sintaxe
SHA512(<arg>)
Parâmetros obrigatórios
arg: Valor a ser hashado
Descrição
Aplica a função de hash SHA-512 a uma string de entrada. O hash retornado é uma string de 128 dígitos hexadecimais. Esta função é suportada ao usar versões do Design Studio 11.65 ou posteriores e versões do agente 12.9 ou posteriores.
Se a entrada for uma string, ela será primeiro convertida para a representação em bytes UTF-8. Dados que não são strings serão primeiro convertidos para uma string.
Exemplos
SHA512("hello world!");
// Returns "db9b1cd3262dee37756a09b9064973589847caa8e53d31a9d142ea2701b1b28abd97838bb9a27068ba305dc8d04a45a1fcf079de54d607666996b3cc54f6b67c"