IMPORTANTE: esta documentação foi descontinuada. Leia a documentação AES Cryptography atualizada no nosso novo portal de documentação.
O AES Cryptography criptografa ou descriptografa com base em criptografia simétrica.
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 (se você quiser utilizar uma chave arbitrária, então desfaça a seleção da conta e habilite a opção "Provide Key" nas configurações avançadas).
Fields To Encrypt/Decrypt: campos a serem encriptados/decriptados utilizando uma notação com pontos (ex.: body.field1,body.field2,body).
Algorithm Key Size: tamanho da chave do algoritmo, disponível em 256 bits,192 bits e 128 bits. Para o tamanho de chave:
- 256 bits, é necessário utilizar uma chave de 32 bytes;
- 192 bits, é necessário utilizar uma chave de 24 bytes;
- 128 bits, é necessário utilizar uma chave de 16 bytes.
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). “NoPadding” é utilizado somente quando a mensagem a ser criptografada com certeza não necessita de padding. O correto é sempre usar padding para evitar erros na hora de criptografar/descriptografar.
Charset: charset da chave passada do string type.
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".
Advanced Settings: configurações avançadas.
Concatenate IV: uma mensagem encriptada é esperada/produzida com o Concatenate IV (IV+MESSAGE); do contrário, um parâmetro IV será produzido durante a encriptação e IV em IV será esperado no campo "Decryption".
Provide IV For Encryption: se a opção estiver ativada, será esperado um IV como parâmetro para a encriptação; do contrário, será gerado um parâmetro com zeros ou um parâmetro aleatório controlado pelo parâmetro Empty IV.
IV as Hex: se a opção estiver ativada, será esperado um IV como hexadecimal; do contrário, espera-se base64.
IV: vetor de inicialização a ser informado previamente para a realização de criptografia/descriptografia, que deve conter 16 bytes. Este parâmetro aceita Double Braces.
Update AAD: additional authenticated data para a operação GCM. Se a opção estiver ativada, é possível informar o AAD para a operação GCM.
AAD: additional authenticated data. Valor para a chave AAD na operação GCM.
Empty IV/Random IV: se a opção estiver ativada, será gerado um IV vazio (16 bytes de zeros); do contrário, será gerado um IV aleatório.
Provide Key Or Generate Random: se a opção estiver ativada, espera-se uma chave; do contrário, uma chave aleatória será gerada.
Secret Key: chave em formato Hex ou base64 (controlada pelo parâmetro "Encryption Key As Hex Value") - a chave precisa ter o número de bits de acordo com o parâmetro "Algorithm Key Size".
Encryption Key As Hex Value: se a opção estiver ativada, a opção espera/produz uma Encryption Key as Hex; do contrário, será esperada/produzida como base64.
Encrypted Message As Hex: se a opção estiver ativada, a opção espera/produz uma mensagem encriptada em formato Hex; do contrário, será esperada/produzida como base64.
IMPORTANTE: se você deseja utilizar a sua própria chave por conta, então será necessário configurar uma conta SECRET-KEY ou passar a respectiva propriedade através de Double Braces com a chave.
Fluxo de mensagens
Entrada
Não se espera um formato específico de entrada.
Saída
Crypto Operation: ENCRYPT FIELDS ou DECRYPT FIELDS
Será mantida a mesma estrutura de entrada na saída. Caso a opção "Concatenate IV" esteja desabilitada, será gerada uma nova propriedade "IV" no JSON informado para cada campo configurado.
Exemplo:
Entrada
{
"array": [
{"text": "text"},
{"text": "text2"}
]
}
Concatenate IV desabilitado:
{
"array": [
{"text": "ENCRYPTED TEXT", "iv": "SOME BASE64"},
{"text": "ENCRYPTED TEXT", "iv": "SOME BASE64"}
]
}
Concatenate IV habilitado:
{
"array": [
{"text": "ENCRYPTED TEXT"},
{"text": "ENCRYPTED TEXT"}
]
}
Crypto Operation: ENCRYPT PAYLOAD ou DECRYPT PAYLOAD
O valor criptografado será retornado dentro da propriedade "result". Caso a opção "Concatenate IV" esteja desabilitada, será gerada uma nova propriedade "IV" no JSON informado para cada campo configurado.
Concatenate IV desabilitado:
{
"result": "ENCRYPTED TEXT",
"iv": "SOME BASE64"
}
Concatenate IV habilitado:
{
"result": "ENCRYPTED TEXT
}
AES Cryptography em Ação
1. Criptografia ENCRYPT FIELDS
Crypto operation: ENCRYPT FIELDS
Fields To Encrypt/Decrypt: array.text
Algorithm key Size: 256
Operation Mode: CBC
Padding: PKCS5Padding
Advanced Settings: habilitado
Concatenate IV: habilitado
Provide IV for encryption: habilitado
IV: MTIzNDU2Nzg5MDEyMzQ1NjE=
Provide Key Or Generate Random: habilitado
Secret Key: MTIzNDU2Nzg5MDEyMzQ1NjEyMzQ1Njc4OTAxMjM0NTY=
(É aconselhável armazenar essa chave em uma conta do tipo SECRET-KEY)
Encryption Key As Hex Value: desabilitado
Encrypted Message As Hex: desabilitado
Entrada
{
"array": [
{"text": "text"},
{"text": "text2"}
]
}
Saída
{
"array": [
{
"text": "MTIzNDU2Nzg5MDEyMzQ1Npp1dUf7FzjkLwD9Ezq4FSU="
},
{
"text": "MTIzNDU2Nzg5MDEyMzQ1NijQdN4bFfeBL9Z6vCfzMTw="
}
]
}
2. Criptografia ENCRYPT PAYLOAD
Crypto operation: ENCRYPT PAYLOAD
Payload: text
Algorithm key Size: 256
Operation Mode: CBC
Padding: PKCS5Padding
Advanced Settings: habilitado
Concatenate IV: habilitado
Provide IV for encryption: habilitado
IV: MTIzNDU2Nzg5MDEyMzQ1NjE=
Provide Key Or Generate Random: habilitado
Secret Key: MTIzNDU2Nzg5MDEyMzQ1NjEyMzQ1Njc4OTAxMjM0NTY=
(É aconselhável armazenar essa chave em uma conta do tipo SECRET-KEY)
Encryption Key As Hex Value: desabilitado
Encrypted Message As Hex: desabilitado
Entrada
{}
Saída
{
"result": "MTIzNDU2Nzg5MDEyMzQ1Npp1dUf7FzjkLwD9Ezq4FSU="
}
3. Descriptografar DECRYPT FIELDS
Crypto operation: DECRYPT FIELDS
Fields To Encrypt/Decrypt: array.text
Algorithm key Size: 256
Operation Mode: CBC
Padding: PKCS5Padding
Advanced Settings: habilitado
Concatenate IV: habilitado
Provide IV for encryption: habilitado
IV: MTIzNDU2Nzg5MDEyMzQ1NjE=
Provide Key Or Generate Random: habilitado
Secret Key: MTIzNDU2Nzg5MDEyMzQ1NjEyMzQ1Njc4OTAxMjM0NTY=
(É aconselhável armazenar essa chave em uma conta do tipo SECRET-KEY)
Encryption Key As Hex Value: desabilitado
Encrypted Message As Hex: desabilitado
Entrada
{
"array": [
{
"text": "MTIzNDU2Nzg5MDEyMzQ1Npp1dUf7FzjkLwD9Ezq4FSU="
},
{
"text": "MTIzNDU2Nzg5MDEyMzQ1NijQdN4bFfeBL9Z6vCfzMTw="
}
]
}
Saída
{
"array": [
{"text": "text"},
{"text": "text2"}
]
}
4. Descriptografar DECRYPT PAYLOAD
Crypto operation: DECRYPT PAYLOAD
Payload: MTIzNDU2Nzg5MDEyMzQ1Npp1dUf7FzjkLwD9Ezq4FSU=
Algorithm key Size: 256
Operation Mode: CBC
Padding: PKCS5Padding
Advanced Settings: habilitado
Concatenate IV: habilitado
Provide IV for encryption: habilitado
IV: MTIzNDU2Nzg5MDEyMzQ1NjE=
Provide Key Or Generate Random: habilitado
Secret Key: MTIzNDU2Nzg5MDEyMzQ1NjEyMzQ1Njc4OTAxMjM0NTY=
(É aconselhável armazenar essa chave em uma conta do tipo SECRET-KEY)
Encryption Key As Hex Value: desabilitado
Encrypted Message As Hex: desabilitado
Entrada
{}
Saída
{
"result": "text"
}