Hash
Saiba mais sobre o conector Hash e como usá-lo na Digibee Integration Platform.
O conector Hash permite gerar valores de hash a partir de diferentes tipos de entrada. Dependendo do seu caso de uso, é possível gerar o hash de campos específicos, arquivos ou do payload completo.
Cada opção possui seu próprio conjunto de parâmetros, mas todas seguem a mesma lógica básica: selecionar a operação, definir o algoritmo de hash e ajustar parâmetros adicionais conforme necessário.
Parâmetros
Os parâmetros de configuração são organizados em abas: General e Documentation.
A aba General contém todos os campos usados para configurar o conector. Inclui parâmetros que estão sempre visíveis, além daqueles que aparecem dinamicamente de acordo com a Crypto Operation selecionada (por exemplo,
Hash Fields,Hash FileouHash Payload) ou com o Crypto Algorithm (por exemplo,HmacSHA256ouBCrypt).A aba Documentation fornece um campo opcional onde você pode descrever a configuração do conector e adicionar regras de negócio ou observações relevantes.
Os campos que aceitam expressões Double Braces são marcados na coluna Suporta DB.
Parâmetros comuns
Esses parâmetros são sempre exibidos, independentemente da operação selecionada.
Alias
Nome (alias) para a saída deste conector, permitindo referenciá-la posteriormente no fluxo usando expressões Double Braces. Saiba mais.
String
❌
hash-1
Crypto Operation
Tipo de operação a ser realizada. Valores possíveis: Hash Fields, Hash Payload ou Hash File.
Seleção
❌
Hash Fields
Crypto Algorithm
Tipo de algoritmo usado para gerar o hash. Valores possíveis: MD5, SHA-1, SHA-256, SHA-384, SHA-512, HmacSHA1, HmacSHA256, HmacSHA384, HmacSHA512 e BCrypt.
Seleção
❌
SHA-512
Result As Hexadecimal
Quando habilitado, mantém o hash no formato hexadecimal; caso contrário, o formato será base64.
Booleano
❌
true
Fail On Error
Quando habilitado, interrompe a execução do pipeline se ocorrer um erro. Quando desabilitado, a execução continua, mas a propriedade "success" será definida como false.
Booleano
❌
false
Hash Fields
Esses parâmetros são exibidos apenas quando a Crypto Operation está definida como Hash Fields.
JSON Field Path
Caminho do campo string no JSON, em notação pontuada.
String
✅
xml.text
Preserve Original
Quando ativado, preserva o campo original como uma propriedade "Field" no mesmo nível do campo original.
Booleano
❌
true
Hash File
Esses parâmetros são exibidos apenas quando a Crypto Operation está definida como Hash File.
File Name
Nome do arquivo ou caminho completo (por exemplo, tmp/processed/file.txt).
String
✅
N/A
Hash Payload
Esses parâmetros são exibidos apenas quando a Crypto Operation está definida como Hash Payload.
Payload
Campo usado para informar diretamente o payload que será convertido em hash.
String
✅
N/A
Configuração baseada no algoritmo
Esses parâmetros dependem do Crypto Algorithm selecionado.
Account
Exibido apenas quando o Crypto Algorithm é um dos seguintes: HmacSHA1, HmacSHA256, HmacSHA384 ou HmacSHA512. A conta deve ser do tipo Secret Key, e a chave para o hash deve ser informada.
String
❌
N/A
Secret Key (DB)
Exibido apenas se nenhuma conta for selecionada e o Crypto Algorithm for um dos seguintes: HmacSHA1, HmacSHA256, HmacSHA384 ou HmacSHA512. Permite que o conector receba a chave dinamicamente.
String
✅
N/A
Secret Key Type
Exibido apenas se nenhuma conta for selecionada e o Crypto Algorithm for um dos seguintes: HmacSHA1, HmacSHA256, HmacSHA384 ou HmacSHA512. Define o tipo de chave informada — String, Hexadecimal ou Base64.
Seleção
❌
Hexadecimal
Charset
Exibido apenas quando o Secret Key Type é String. Define o conjunto de caracteres da chave.
Seleção
❌
UTF-8
BCrypt Version
Exibido apenas quando o Crypto Algorithm é BCrypt. Define a versão do algoritmo a ser usada.
Seleção
❌
2y
Salt
Exibido apenas quando o Crypto Algorithm é BCrypt. Cadeia de 16 bytes adicionada ao valor do hash. Se não for informada, um valor aleatório será usado.
String
✅
N/A
Cost Factor
Exibido apenas quando o Crypto Algorithm é BCrypt. Determina o número de rodadas do hash (2^n, em que n é o fator de custo, entre 4 e 20).
Integer
❌
4
Documentation
Campo opcional para descrever a configuração do conector e eventuais regras de negócio relevantes.
String
❌
N/A
Informações adicionais sobre os parâmetros
Hash gerado
O conector gera um hash a partir da string informada no campo Payload quando a operação selecionada é Hash Payload.
Se a operação selecionada for Hash Fields, o conector gera o hash a partir da string encontrada nos campos especificados no JSON de entrada.
Cost Factor
No algoritmo BCrypt, o fator de custo aumenta exponencialmente o tempo de processamento e os recursos necessários. O algoritmo é executado consecutivamente conforme o número de rodadas derivado do cálculo 2ⁿ, em que “n” é o fator de custo.
Os exemplos a seguir ilustram como o tempo de execução pode variar conforme o fator de custo. Os testes foram realizados usando um payload de 1 MB e os valores mínimo e máximo permitidos para o algoritmo BCrypt.
Cost Factor 4
Pipeline pequeno: Média de 0,98s
Pipeline médio: Média de 0,64s
Pipeline grande: Média de 0,07s
Cost Factor 20
Pipeline pequeno: Média de 8m 7s
Pipeline médio: Média de 3m 56s
Pipeline grande: Média de 1m 53s
Esses resultados podem variar dependendo do fluxo de integração, do tamanho da mensagem e do fator de custo aplicado.
O fator de custo do BCrypt pode variar de 4 a 31. No entanto, valores acima de 20 resultam em cargas de processamento e tempos de execução muito altos, frequentemente excedendo os limites de timeout do pipeline. Por esse motivo, o conector Hash aceita no máximo o valor 20 para o fator de custo.
Ao usar o algoritmo BCrypt com o conector Hash, mantenha o fator de custo dentro desse limite para evitar falhas de validação ou processamento no fluxo de integração.
Fluxo de mensagens
Entrada
Operação: Hash Fields
Ao usar a operação Hash Fields, o conector pode receber qualquer mensagem de entrada, mas é necessário configurar a propriedade JSON Field Path para definir onde o hash será aplicado. Por exemplo:
JSON Field Path: data.test
Payload:
{
"data":[
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}Nesse caso, o conector procura a propriedade test dentro da propriedade data.
Operação: Hash Payload
Ao usar a operação Hash Payload, a mensagem que será convertida em hash deve ser informada no campo Payload.
Operação: Hash Files
Ao usar a operação Hash Files, o nome do arquivo deve ser informado no campo File Name.
Saída
Operação: Hash Fields
A saída mantém a mesma estrutura da entrada, mas inclui o hash gerado.
Se a propriedade Preserve Original estiver ativada, a saída mantém o campo original e adiciona um novo campo prefixado com um sublinhado (_):
Operação: Hash Payload
A saída contém a propriedade result com o hash da mensagem informada:
{
"result": "3851b1ae73ca0ca6e3c24a0256a80ace"
}Exemplo de erro
{
"success": false,
"message": "Something went wrong while trying to use the HashConnector. Error: java.lang.StringIndexOutOfBoundsException: String index out of range: 1",
"error": "java.lang.StringIndexOutOfBoundsException: String index out of range: 1"
}success:false— indica que ocorreu um erro durante a execução.message: mensagem de erro do conector.error: mensagem detalhada de erro retornada pelo algoritmo de hash.
Operação: Hash Files
A saída exibe uma propriedade result contendo o hash gerado de acordo com o algoritmo selecionado.
Exemplo usando SHA-256:
{
"result": "aff746225015b78af3c3f0a7540b10c300d73b3b562cec75ef2df9cfbf7ae2b6"
}Hash em ação
Operação: Hash Fields
Exemplo 1
Crypto Operation:
Hash FieldsCrypto Algorithm:
SHA-256JSON Field Path:
data.testPreserve Original:
trueResult as Hexadecimal:
true
Entrada
{
"data": [
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}Saída
Exemplo 2
Crypto Operation:
Hash FieldsCrypto Algorithm:
HmacSHA256Account: (vazio)
Secret Key:
001def0209Secret Key Type:
Hexadecimal(o valor do campo Secret Key deve estar em formato hexadecimal)JSON Field Path:
data.testPreserve Original:
trueResult as Hexadecimal:
true
Entrada
{
"data": [
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}Saída
Exemplo 3
Crypto Operation:
Hash FieldsCrypto Algorithm:
BCryptBCrypt Version:
2ySalt:
N9qo8uLOickgx2ZMCost:
6JSON Field Path:
data.testPreserve Original:
true
Entrada
{
"data": [
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}Saída
Operação: Hash Payload
Exemplo 1
Crypto Operation:
Hash PayloadCrypto Algorithm:
SHA-256Payload: (qualquer payload)
Result as Hexadecimal:
true
Saída
{
"result": "2e954593b0b51547656f7f06ec3818a2b42fed46307b81bd493133aa1ce45173"
}Exemplo 2
Crypto Operation:
Hash PayloadCrypto Algorithm:
HmacSHA512Account: (vazio)
Secret Key:
001def0209Secret Key Type:
HexadecimalPayload: (qualquer payload)
Result as Hexadecimal:
true
Saída
{
"result": "517da9449385a43478309459adf9304bd3c8f63cd1d388abd5cbc02b81d8ccb39d303f877019aebfed073166e6c410197e10077f6df3f7a3b3f50adb8cd09580"
}Exemplo 3
Crypto Operation:
Hash PayloadCrypto Algorithm:
BCryptBCrypt Version:
2bSalt:
N9qo8uLOickgx2ZMCost:
10Payload:
{{ message.data }}
Entrada
{
"data": [
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}Saída
{
"result": "$2b$10$RhjvZxfzRC7nW0rlcBHYROa3UXROXVeKZ3oK4DSc1mV6iJ/pBqBm6"
}Operação: Hash Files
Quando a operação Hash Files é selecionada, o conector gera um hash a partir do arquivo informado no campo File Name.
O arquivo deve ter sido previamente processado no pipeline, por exemplo, por meio de um conector File Writer.
Exemplo
Crypto Operation:
Hash FileCrypto Algorithm:
SHA-256File Name:
{{ message.fileName }}(os dados são passados por meio do conector File Writer)Result as Hexadecimal:
true
Entrada
{
"data": "linha 1",
"fileName": "test"
}Saída
{
"result": "aff746225015b78af3c3f0a7540b10c300d73b3b562cec75ef2df9cfbf7ae2b6"
}Atualizado
Isto foi útil?