O Hash gera um hash a partir de uma string passada no campo "Payload" caso a operação selecionada seja Hash Payload.

No entanto, se a operação selecionada for Hash Fields, então o componente gera um hash a partir de uma string passada nos campos especificados do JSON de entrada.

Dê uma olhada nos parâmetros de configuração do componente:

  • Crypto Operation: tipos de operação disponíveis - Hash Fields e Hash Payload.

  • Crypto Algorithm: tipo de algoritmo utilizado para gerar o hash.

  • Account: só será exibida caso o algoritmo selecionado no campo Crypto Algorithm seja HmacSHA1, HmacSHA256, HmacSHA384 ou HmacSHA512. A conta deve ser do tipo SECRET_KEY e a chave para fazer o hash deve ser informada.

  • Secret Key: só será exibida se nenhuma for conta selecionada e caso o algoritmo selecionado no campo Crypto Algorithm seja HmacSHA1, HmacSHA256, HmacSHA384 ou HmacSHA512. Essa é uma alternativa para o componente receber a chave para a geração do hash de forma dinâmica.

  • Secret Key Type: só será exibido caso o algoritmo selecionado no campo Crypto Algorithm seja HmacSHA1, HmacSHA256, HmacSHA384 ou HmacSHA512. Esse campo também informa para o componente qual é o tipo da chave informada, que pode ser do tipo String, Hexadecimal ou base64.

  • JSON Field Path: JSON como caminho do campo string em notação com pontos (dotted notation).

  • Payload: campo para informar diretamente o payload que terá o hash feito. Ele será exibido apenas se a operação selecionada for Hash Payload.

  • Preserve Original: se ativada, a opção preserva o campo original como propriedade "Field" no mesmo nível do original.

  • Result As Hexadecimal: se ativada, a opção mantém o hash em formato hexadecimal; do contrário, o formato será base64.

  • Fail On Error: se a opção estiver habilitada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".

Fluxo de mensagens

Entrada

Se você selecionar a operação Hash Fields, o componente recebe qualquer mensagem de entrada, mas você deve configurar o caminho para o hash da mensagem na propriedade Json Field Path. Por exemplo:

Json Field Path: data.test

{
"data": [
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}

Portanto, o componente faz uma busca na propriedade “test”, dentro da propriedade “data”.

Por outro lado, se você selecionar a operação Hash Payload, então a mensagem de entrada deve ser informada dentro do campo Payload.

Saída

Operação Hash Fields

Se você selecionar a operação Hash Fields, a saída contém a mesma estrutura de entrada, porém exibindo o hash da mensagem. Caso a propriedade Preserve Original estiver habilitada, então a saída preserva o campo original no mesmo nível, adicionando o prefixo '_' na frente do campo:

{
"data": [
{
"test": "3851b1ae73ca0ca6e3c24a0256a80ace",
"_test": "xpto"
},
{
"test": "ca9e9bf198149d78f4aad334c838a263",
"_test": "xpto1"
},
{
"test": "83709b4f9067a83bbdfb0c358dc23a5e",
"_test": "xpto2"
},
{
"test": "e427f7e6f1bd29d91ea0cc53e40fba12",
"_test": "xpto3"
}
]
}

Operação Hash Payload

Se você selecionar a operação Hash Payload, a saída exibe a propriedade "result" com o hash da mensagem passada:

{
"result": "3851b1ae73ca0ca6e3c24a0256a80ace"
}

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”, pois ocorreu um erro na execução

  • message: mensagem de erro do componente

  • error: mensagem de erro recebida do algoritmo de hash

Hash Connector em Ação

Operação Hash Fields

Exemplo 1

  • Crypto Operation: Hash Fields

  • Crypto Algorithm: SHA-256

  • JSON Field Path: data.test

  • Preserve Original: habilitado

  • Result As Hexadecimal: habilitado

Entrada

{
"data": [
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}

Saída

{
"data": [
{
"test": "2e954593b0b51547656f7f06ec3818a2b42fed46307b81bd493133aa1ce45173",
"_test": "xpto"
},
{
"test": "8b948d95169f851545f8161fb4dc8e1d37a4c79014ac1d02186fa8946a91aab9",
"_test": "xpto1"
},
{
"test": "4c9e0d7ca22d9ab7cc675de59226f9477fd847ede13894b835d0ae204139f63a",
"_test": "xpto2"
},
{
"test": "b5bd5abe3eb5958153af6615df06ccbdfe5857a13da2601f49e4de9fbb102f9a",
"_test": "xpto3"
}
]
}

Exemplo 2

  • Crypto Operation: Hash Fields

  • Crypto Algorithm: HmacSHA256

  • Account: vazio

  • Secret Key: 001def0209

  • Secret Key Type: Hexadecimal (a chave passada na propriedade Secret Key deve estar em hexadecimal)

  • JSON Field Path: data.test

  • Preserve Original: habilitado

  • Result As Hexadecimal: habilitado

Entrada

{
"data": [
{"test":"xpto"},
{"test":"xpto1"},
{"test":"xpto2"},
{"test":"xpto3"}
]
}

Saída

{
"data": [
{
"test": "257966929b29a6e0618d47a152e2856a888072400a5cb458fa1d40ff3cedc734",
"_test": "xpto"
},
{
"test": "ce0e754ab2f57f1fca1a00fce3e834a6940bea8013ae59b6641a4911e349b480",
"_test": "xpto1"
},
{
"test": "ff0cd9c0df219f99567aeb25d7d5ab9acff3c29728b0f4f71f50e750750a26d5",
"_test": "xpto2"
},
{
"test": "04a11cbc118ea455c0072e6c70607f68324e5444c8a4795443d25933d9dfa9c6",
"_test": "xpto3"
}
]
}

Operação Hash Payload

Exemplo 1

  • Crypto Operation: Hash Payload

  • Crypto Algorithm: SHA-256

  • Payload: xpto

  • Result As Hexadecimal: habilitado

Saída

{
"result": "2e954593b0b51547656f7f06ec3818a2b42fed46307b81bd493133aa1ce45173"
}

Exemplo 2

  • Crypto Operation: Hash Payload

  • Crypto Algorithm: HmacSHA512

  • Account: vazio

  • Secret Key: 001def0209

  • Secret Key Type: Hexadecimal (a chave passada na propriedade Secret Key deve estar em hexadecimal)

  • Payload: xpto

  • Result As Hexadecimal: habilitado

Saída

{
"result": "517da9449385a43478309459adf9304bd3c8f63cd1d388abd5cbc02b81d8ccb39d303f877019aebfed073166e6c410197e10077f6df3f7a3b3f50adb8cd09580"
}

O Hash Connector gera um hash a partir de uma string passada no campo "Payload" caso a operação selecionada seja Hash Payload.

No entanto, se a operação selecionada for Hash Fields, então o conector gera um hash a partir de uma string passada nos campos especificados do JSON de entrada.

Dê uma olhada nos parâmetros de configuração do conector:

  • Crypto Operation: tipos de operação disponíveis - Hash Fields e Hash Payload

  • Crypto Algorithm: tipo de algoritmo utilizado para gerar o hash

  • JSON Field Path: JSON como caminho do campo string em notação com pontos

  • Preserve Original: se ativada, a opção preserva o campo original como propriedade "Field" no mesmo nível do original

  • Result As Hexadecimal: se ativada, a opção mantém o hash em formato hexadecimal; do contrário, o formato será base64

  • Fail On Error: se "true", a execução do pipeline com erro será interrompida; se "false", a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade sucesso

Encontrou sua resposta?