Criptografa texto simples em texto cifrado.
Descrição da operação
O Key Management Service (KMS) oferece duas operações de criptografia: Encrypt e AdvanceEncrypt. A principal diferença entre elas é a versão da chave usada e a operação de descriptografia que você deve chamar posteriormente.
|
Encrypt |
AdvanceEncrypt |
|
|
Versão da chave usada |
Versão inicial |
Versão primária |
|
Operações de descriptografia compatíveis |
Decrypt ou AdvanceDecrypt |
Apenas AdvanceDecrypt |
Se você usar uma chave simétrica em uma instância de gerenciamento de chaves por software e a rotação de chaves estiver ativada para essa chave protegida por software, chame AdvanceEncrypt em vez de Encrypt. Caso contrário, o recurso de rotação de chaves não entrará em vigor. Para obter mais informações, consulte Configure key rotation.
Para obter mais informações sobre especificações de chave, modos de criptografia, criptografia de chave secreta e versões de chave, consulte Key types and specifications.
Observações de uso
Todos os parâmetros da solicitação são codificados com Protocol Buffers. O corpo da solicitação resultante não pode exceder 3 MB. Se o volume de dados ultrapassar 3 MB, o servidor rejeitará a solicitação e retornará o código de status HTTP 413.
Em uma única chamada de criptografia ou descriptografia, mantenha os dados dentro dos seguintes limites:
|
Tipo de chave |
Volume máximo de dados recomendado |
|
Chave simétrica |
6 KB |
|
Chave assimétrica |
1 KB |
Caso seus dados excedam esses limites, use a criptografia de envelope. Para obter mais informações, consulte Envelope encryption.
Quanto maior o volume de dados em uma única chamada, maior o risco de falha na transmissão de rede, maior o tempo de transmissão e mais tempo a instância do KMS leva para concluir a criptografia ou descriptografia dos dados.
Parâmetros da solicitação
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
|---|---|---|---|---|
| KeyId | string | Sim | key-hzz62f1cb66fa42qo**** | O ID globalmente exclusivo da chave. Você também pode especificar um alias vinculado à chave. |
| Plaintext | bytes | Sim | Dados binários | O texto simples a ser criptografado. |
| Algorithm | string | Não | AES_GCM | O algoritmo de criptografia. Se não for especificado, o KMS usa o algoritmo padrão da chave. Para obter mais informações, consulte Key types and specifications. |
| Iv | bytes | Não | Dados binários | O vetor de inicialização (IV) usado para criptografia de dados. Aplica-se apenas quando o algoritmo de criptografia (Algorithm) é AES_GCM, AES_CBC. Comprimentos válidos: 16 bytes quando Algorithm é AES_CBC; 12 bytes quando Algorithm é AES_GCM. Se não for especificado, o KMS gera um valor aleatório. Não defina este parâmetro e permita que o KMS o gere aleatoriamente. |
| Aad | binary | Não | Dados binários | Os dados autenticados adicionais (AAD) usados para autenticação no modo GCM durante a criptografia de dados. Defina este parâmetro quando a chave for simétrica e o algoritmo de criptografia (Algorithm) for AES_GCM ou SM4_GCM. Se definir este parâmetro, passe o mesmo valor ao chamar Decrypt para descriptografar os dados criptografados. |
| PaddingMode | string | Não | PKCS7_PADDING | O modo de preenchimento. Necessário apenas quando Algorithm está definido como AES_CBC ou AES_ECB. Valores válidos: PKCS7_PADDING (padrão) e NO_PADDING. |
Valores de PaddingMode
PKCS7_PADDING(padrão): Usa preenchimento PKCS#7. Se a entrada tiver L bytes, o KMS adiciona K − (L mod K) bytes de preenchimento, onde K é o tamanho do bloco de cifra.NO_PADDING: Nenhum preenchimento é adicionado. O comprimento do texto simples deve ser um múltiplo inteiro do tamanho do bloco de cifra.
Elementos da resposta
| Parâmetro | Tipo | Exemplo | Descrição |
|---|---|---|---|
| Iv | bytes | Dados binários | O vetor de inicialização (IV) usado para criptografia de dados. Retorna um valor válido apenas quando o algoritmo de criptografia (Algorithm) é AES_GCM, AES_CBC; retorna um valor vazio em todos os outros casos. |
| CiphertextBlob | bytes | Dados binários | O BLOB de texto cifrado dos dados após a criptografia com a chave especificada. Nota: Quando o algoritmo Elliptic Curve Integrated Encryption Scheme (ECIES) é usado, o formato do texto cifrado retornado está em conformidade com o padrão SEC 1: Elliptic Curve Cryptography, Version 2.0. |
| KeyId | string | key-hzz62f1cb66fa42qo**** | O identificador globalmente exclusivo da chave. Se você especificou um alias de chave no parâmetro de solicitação KeyId, este elemento de resposta retorna o identificador globalmente exclusivo da chave vinculada a esse alias. |
| Algorithm | string | AES_GCM | O algoritmo de criptografia. |
| PaddingMode | string | PKCS7_PADDING | O modo de preenchimento. Retorna um valor apenas quando Algorithm é AES_CBC ou AES_ECB; caso contrário, retorna vazio. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | O ID da solicitação. A Alibaba Cloud gera este identificador exclusivo para a solicitação. Use-o para solucionar problemas e localizar falhas. |
Códigos de erro
Para obter uma lista de códigos de erro, consulte Service error codes.