Ir para o conteúdo

Transforme as suas conexões em um bônus de fim de ano com o nosso novo Programa de Indicação de Clientes! Saiba mais

Funções criptográficas no Jitterbit Design Studio

Funções criptográficas são usadas para executar 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 gravar arquivos, seguindo estes cenários comuns:

Um cenário é ler um arquivo existente (talvez um PDF) usando o Base64EncodeFile função e, em seguida, gravar 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 as variáveis globais apropriadas. Em seguida, você criaria uma transformação que pega essas variáveis globais e as usa em um mapeamento para gravar 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, colocar o conteúdo em uma variável e, em seguida, usar o Base64Encode função 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 criptografado AES em Base64
  • passphrase: Senha usada para criptografar a string com o AESEncryption função

Parâmetros opcionais

  • salt: Sal de string hexadecimal usado para criptografar a string com o AESEncryption função
  • keyLength: Comprimento da chave usada para criptografar a string com o AESEncryption função
  • iterations: Número de iterações usadas para criptografar a string com o AESEncryption função

Descrição

Esta função descriptografa uma string criptografada com AESEncryption Algoritmo AES da função.

A saída descriptografada é retornada como uma string. Veja AESEncryption para mais detalhes.

Nota

Para descriptografar texto criptografado com um algoritmo AES usando OpenSSL 3, defina jitterbit.scripting.aes.default para true acima na cadeia desta função. Esta variável é suportada ao usar versões de agente 11.42 ou posteriores.

Alternativamente, AESDecryptionEx suporta descriptografia OpenSSL 3 AES por padrão ao utilizar agentes com versões 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, codificada em Base64 e com suporte a OpenSSL 3
  • key: A chave usada para criptografar encryptedText

Parâmetros opcionais

  • iv: O vetor de inicialização de 16 bytes (IV) usado para criptografar encryptedText
  • keyLength: O comprimento da chave usada para criptografar encryptedText

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 o AESEncryptionEx função. Esta função é compatível com o Design Studio versão 11.42 ou posterior e com o Agent versão 11.42 ou posterior.

A saída descriptografada é retornada como uma string. Veja AESEncryptionEx para criptografia.

Exemplos

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

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 criptografada
  • passphrase: Senha a ser usada para criptografar a string

Parâmetros opcionais

  • salt: Sal de string hexadecimal usado para criptografar a string; se especificado, o valor deve ser fornecido em formato hexadecimal (como "A034DD")
  • keyLength: Comprimento da chave a ser usada para criptografar a string e deve ser 128, 192 ou 256; o padrão é 256
  • iterations: 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 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 passado diretamente para o AESDecryption função para descriptografia, usando os mesmos parâmetros usados quando a string de texto simples foi criptografada.

Nota

Para criptografar texto com um algoritmo AES usando OpenSSL 3, defina jitterbit.scripting.aes.default para true acima na cadeia desta função. Esta variável é suportada ao usar versões de agente 11.42 ou posteriores.

Alternativamente, AESEncryptionEx oferece suporte à criptografia OpenSSL 3 AES por padrão ao usar versões de 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 criptografada
  • key: A chave a ser usada para criptografar plainText

Parâmetros opcionais

  • iv: O vetor de inicialização de 16 bytes (IV) usado para criptografar plainText; um erro é gerado se o IV não tiver 16 bytes
  • keyLength: O comprimento da chave usada para criptografar plainText e deve ser 128, 192 ou 256; o padrão é 256.

Descrição

Esta função criptografa uma string usando um algoritmo AES usando OpenSSL 3. Esta função é suportada ao usar o Design Studio versões 11.42 ou posteriores e versões de agente 11.42 ou posteriores.

A saída criptografada é uma string codificada em Base64 e suportada por OpenSSL 3. A saída de AESEncryptionEx pode ser passado diretamente para o AESDecryptionEx função ou fora da plataforma Jitterbit Harmony para descriptografia, usando os mesmos parâmetros de quando a sequência de texto simples foi criptografada.

Exemplos

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

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.

Cuidado

Ao usar o agente versão 11.33 ou anterior, o Base64Decode a função pode retornar um valor truncado ou incorreto quando a string codificada em Base64 não é anexada com = ou == Ao utilizar o agente versão 11.34 ou posterior, as 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 será primeiro convertido para 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 quebras de linha para limitar o comprimento máximo de linha do resultado codificado, isso deve ser explicitamente desabilitado somente quando necessário. Para desabilitar isso, defina a propriedade jitterbit.base64.encoded.string.no.wrap Variável Jitterbit para 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 uma matriz de nomes de arquivos for retornada, o primeiro nome será usado.

Parâmetros opcionais

  • filename: Um nome de arquivo de string usado para substituir o valor retornado pelo sourceId fonte

Descrição

Lê um arquivo binário da fonte 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.

O tipo de arquivo source usado nesta função deve ser definido como source no projeto atual. Consulte as instruções em inserir itens do projeto.

Este método retorna o conteúdo do arquivo apontado pela fonte especificada. Se o filtro de fonte selecionar mais de um arquivo, o primeiro será usado. Recomenda-se especificar uma fonte 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 de origem. Alternativamente, uma variável global pode ser usada para substituir o nome do arquivo na definição de origem. Variáveis globais são referenciadas como [de_name] na definição de 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 quebras de linha para limitar o comprimento máximo de linha do resultado codificado, isso deve ser explicitamente desabilitado somente quando necessário. Para desabilitar isso, defina a propriedade jitterbit.base64.encoded.string.no.wrap Variável Jitterbit para 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 hash

Descrição

Aplica a função de hash MD5 ao argumento fornecido. O hash é retornado como uma string de 64 bits de números hexadecimais. Dados que não sejam strings serão primeiro convertidos para uma string.

Cuidado

Quando usada 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. Este 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!");
// Returns "fc3ff98e8c6a0d3087d515c0473f8677"

MD5AsTwoNumbers

Declaração

array MD5AsTwoNumbers(type arg)

Sintaxe

MD5AsTwoNumbers(<arg>)

Parâmetros obrigatórios

  • arg: Valor a ser hash

Descrição

Aplica a função de hash MD5 a uma string de entrada e retorna o resultado como uma matriz com dois números de 64 bits. Dados que não sejam strings serão primeiro convertidos para uma string.

Exemplos

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

SHA256

Declaração

string SHA256(type arg)

Sintaxe

SHA256(<arg>)

Parâmetros obrigatórios

  • arg: Valor a ser hash

Descrição

Aplica a função de hash SHA-256 a uma string de entrada. O hash retornado é uma string de 64 números hexadecimais.

Se a entrada for uma string, ela será primeiro convertida para a representação de bytes UTF-8. Dados que não sejam strings serão primeiro convertidos para uma string.

Cuidado

Quando usada 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. Este 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"