PBE Cryptography

Conheça o componente e saiba como utilizá-lo.

Erick Rubiales avatar
Escrito por Erick Rubiales
Atualizado há mais de uma semana

IMPORTANTE: esta documentação foi descontinuada. Leia a documentação PBE Cryptography atualizada no nosso novo portal de documentação.

O PBE Cryptography faz operações de criptografia e descriptografia usando o algoritmo PBE (Password Based Encryption).

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

  • Crypto Operation: tipos de operação disponíveis - ENCRYPT FIELDS, DECRYPT FIELDS, ENCRYPT PAYLOAD e DECRYPT PAYLOAD.

  • Account: conta a ser utilizada pelo componente - é esperada uma conta SECRET-KEY type.

  • Iteration Count: número de iterações com o Salt.

  • Algorithm: tipo de algoritmo a ser utilizado.

  • Fields To Encrypt/Decrypt: campos a serem encriptados/decriptados utilizando uma notação com pontos (ex.: body.field1,body.field2,body).

  • Charset: tipo de codificação.

  • Secret Key Type: formato da secret key (String, Hexadecimal ou Base64).

  • Fail On Error: se a opção estiver ativada, 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 sucesso.

  • Advanced Settings: configurações avançadas.

  • Use Key From Payload: se ativada, a opção utilizará a secret key do payload.

  • Secret Key: chave em formato Hex ou Base64.

  • Use Salt From Payload: se ativada, a opção utilizará o Salt do payload; do contrário, um novo Salt será gerado.

  • Salt: cadeia aleatória de dados utilizada para modificar um hash de senha.

  • Encryption Key As Hex Value: se a opção estiver ativada, o retorno da secret key será em hexadecimal; do contrário, será em Base64 caso a opção "Use Key From Payload" também esteja ativada.

  • Salt As Hex Value: se a opção estiver ativada, o retorno do Salt será em hexadecimal; do contrário, será em Base64.

  • Encrypted Message As Hex: se a opção estiver ativada, o retorno da secret key será em hexadecimal; do contrário, será em Base64.

Fluxo de Mensagens

Criptografar via fields


Entrada

{
  "accountLabel": "account",
  "params": {
    "operation": "encrypt_fields",
    "iterationCount": 1000,
    "keyType": "STRING",
    "algorithm": "PBEWithMD5AndDES",
    "encryptedFields": "a.test",
    "failOnError": true
  }
}

Payload

{
  "a": {
    "test": "test"
  }
}

Saída

{
  "a": {
    "test": "ZmRmcw=="
  },
  "_salt": "ZmRmcwZmRmcw=="
}

Descriptografar via fields

Entrada

{
  "accountLabel": "account",
  "params": {
    "operation": "decrypt_fields",
    "iterationCount": 1000,
    "keyType": "STRING",
    "algorithm": "PBEWithMD5AndDES",
    "encryptedFields": "a.test",
    "useSaltFromPayload": true,
    "salt": "{{ message._salt }}",
    "failOnError": true
  }
}

Payload

{
  "a": {
    "test": "ZmRmcw=="
  },
  "_salt": "ZmRmcwZmRmcw=="
}

Saída

{
  "a": {
    "test": "test"
  },
  "_salt": "ZmRmcwZmRmcw=="
}



Criptografar via payload

Entrada

{
"accountLabel": "pbe",
    "params": {
        "operation": "encrypt_payload",
        "iterationCount": 1000,
        "payload": "{{ message.a.test }}",
        "keyType": "STRING",
        "algorithm": "PBEWithMD5AndDES",
        "failOnError": true
    }
}

Payload

{
  "a": {
    "test": "test"
  }
}

Saída

{
  "a": {
    "test": "test"
  },
  "result": "ZmRmcw==",
  "_salt": "ZmRmcwZmRmcw=="
}


Descriptografar via payload


Entrada

{
"accountLabel": "pbe",
    "params": {
        "operation": "decrypt_payload",
        "iterationCount": 1000,
        "payload": "{{ message.a.test }}",
        "keyType": "STRING",
        "algorithm": "PBEWithMD5AndDES",
        "useSaltFromPayload": true,
"salt": "{{ message._salt }}",
        "failOnError": true
    }
}

Payload

{
  "a": {
    "test": "ZmRmcw=="
  }
}

Saída

{
  "a": {
    "test": "ZmRmcw=="
  },
  "result": "test",
  "_salt": "ZmRmcwZmRmcw=="
}

Respondeu à sua pergunta?