Asymmetric 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 Asymmetric Cryptography atualizada no nosso novo portal de documentação.

O Asymmetric Cryptography criptografa e descriptografa com base em keys públicas e privadas.

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

  • Account: conta a ser utilizada pelo componente.

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

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

  • Algorithm: algoritmo a ser utilizado para criptografar/descriptografar dados.

  • Operation Mode: modo de operação a ser utilizado.

  • Padding: utilizado em um bloco de cifra no qual os blocos são preenchidos com bytes de padding (ex.: AES 128 bits utiliza 16 bytes de padding).

  • 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".

Para encriptar, você precisa configurar uma PUBLIC KEY account ou passar a property key via body com a respectiva chave.

Para descriptar, você precisa configurar uma PRIVATE KEY account ou passar a property key via body com a respectiva chave.

Se a key não foi configurada na account, você precisa especificar na solicitação conforme o modelo abaixo:

{
"encryptionKey": "-- THE FOLLOWING PUBLIC KEY--"
}

Asymmetric Cryptography em Ação

KEY por ACCOUNT

Config

{
"operation": "encrypt",
"algorithm": "RSA",
"operationMode": "ECB",
"padding": "OAEPWithSHA1AndMGF1Padding",
"encryptedFields": "data,data1",
"failOnError": true
}

Payload

{
"data": someData,
"data1": someData1
}

Saída

{
"data": "RXZlbiBpZiBwZXJmZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH=",
"data1": "RXZlbiBpZifd441mZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH="
}

Config

{
"operation": "decrypt",
"algorithm": "RSA",
"operationMode": "ECB",
"padding": "OAEPWithSHA1AndMGF1Padding",
"encryptedFields": "data,data1",
"failOnError": true
}

Payload

{
"data": "RXZlbiBpZiBwZXJmZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH=",
"data1": "RXZlbiBpZifd441mZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH="
}

Saída

{
"data": someData,
"data1": someData1
}

KEY por REQUEST BODY

Config

{
"operation": "encrypt",
"algorithm": "RSA",
"operationMode": "ECB",
"padding": "OAEPWithSHA1AndMGF1Padding",
"encryptedFields": "data,data1",
"failOnError": true
}

Payload

{
"encryptionKey": "-- THE FOLLOWING PUBLIC KEY--"
"data": someData,
"data1": someData1
}

Saída

{
"data": "RXZlbiBpZiBwZXJmZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH=",
"data1": "RXZlbiBpZifd441mZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH="
}

Config

{
"operation": "decrypt",
"algorithm": "RSA",
"operationMode": "ECB",
"padding": "OAEPWithSHA1AndMGF1Padding",
"encryptedFields": "data,data1",
"failOnError": true
}

Payload

{
"encryptionKey": "-- THE FOLLOWING PRIVATE KEY--"
"data": "RXZlbiBpZiBwZXJmZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH=",
"data1": "RXZlbiBpZifd441mZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH="
}
Respondeu à sua pergunta?