Cifra texto sin formato para convertirlo en texto cifrado.
Descripción de la operación
Key Management Service (KMS) ofrece dos operaciones de cifrado: Encrypt y AdvanceEncrypt. La diferencia principal radica en la versión de la clave que se usa y en la operación de descifrado que debe invocarse después.
|
Encrypt |
AdvanceEncrypt |
|
|
Versión de clave usada |
Versión inicial |
Versión principal |
|
Operaciones de descifrado compatibles |
Decrypt o AdvanceEncrypt |
Únicamente AdvanceDecrypt |
Si usa una clave simétrica en una instancia de gestión de claves por software y la rotación de claves está habilitada para dicha clave protegida por software, invoque AdvanceEncrypt en lugar de Encrypt. De lo contrario, la función de rotación de claves no surtirá efecto. Para obtener más información, consulte Configure key rotation.
Para obtener más información sobre las especificaciones de claves, los modos de cifrado, el cifrado de claves secretas y las versiones de claves, consulte Key types and specifications.
Notas de uso
Todos los parámetros de la solicitud se codifican con Protocol Buffers. El cuerpo de la solicitud resultante no puede exceder los 3 MB. Si el volumen de datos supera los 3 MB, el servidor rechazará la solicitud y devolverá el código de estado HTTP 413.
Para una sola llamada de cifrado o descifrado, mantenga los datos dentro de los siguientes límites:
|
Tipo de clave |
Volumen máximo de datos recomendado |
|
Clave simétrica |
6 KB |
|
Clave asimétrica |
1 KB |
Si sus datos superan estos límites, utilice el cifrado de sobre en su lugar. Para obtener más información, consulte Envelope encryption.
Cuanto mayor sea el volumen de datos en una sola llamada, mayor será el riesgo de fallo en la transmisión de red, más tiempo tardará la transmisión y más tiempo necesitará la instancia de KMS para completar el cifrado o descifrado de los datos.
Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
|---|---|---|---|---|
| KeyId | string | Sí | key-hzz62f1cb66fa42qo**** | El identificador único global de la clave. También puede especificar un alias vinculado a la clave. |
| Plaintext | bytes | Sí | Datos binarios | El texto sin formato que se va a cifrar. |
| Algorithm | string | No | AES_GCM | El algoritmo de cifrado. Si no se especifica, KMS usa el algoritmo predeterminado para la clave. Para obtener más información, consulte Key types and specifications. |
| Iv | bytes | No | Datos binarios | El vector de inicialización (IV) usado para el cifrado de datos. Solo aplica cuando el algoritmo de cifrado (Algorithm) es AES_GCM, AES_CBC. Longitudes válidas: 16 bytes cuando Algorithm es AES_CBC; 12 bytes cuando Algorithm es AES_GCM. Si no se especifica, KMS genera un valor aleatorio. No establezca este parámetro y permita que KMS lo genere aleatoriamente. |
| Aad | binary | No | Datos binarios | Los datos autenticados adicionales (AAD) usados para la autenticación en modo GCM durante el cifrado de datos. Puede establecer este parámetro cuando la clave es simétrica y el algoritmo de cifrado (Algorithm) es AES_GCM o SM4_GCM. Si establece este parámetro, debe pasar el mismo valor cuando invoque Decrypt para descifrar los datos cifrados. |
| PaddingMode | string | No | PKCS7_PADDING | El modo de relleno. Obligatorio solo cuando Algorithm se establece en AES_CBC o AES_ECB. Valores válidos: PKCS7_PADDING (predeterminado) y NO_PADDING. |
Valores de PaddingMode
PKCS7_PADDING(predeterminado): Usa relleno PKCS#7. Si la entrada tiene L bytes, KMS agrega K − (L mod K) bytes de relleno, donde K es el tamaño del bloque de cifrado.NO_PADDING: No se agrega relleno. La longitud del texto sin formato debe ser un múltiplo entero del tamaño del bloque de cifrado.
Elementos de respuesta
| Parámetro | Tipo | Ejemplo | Descripción |
|---|---|---|---|
| Iv | bytes | Datos binarios | El vector de inicialización (IV) usado para el cifrado de datos. Devuelve un valor válido solo cuando el algoritmo de cifrado (Algorithm) es AES_GCM, AES_CBC; devuelve un valor vacío en todos los demás casos. |
| CiphertextBlob | bytes | Datos binarios | El BLOB de texto cifrado de los datos después de cifrarse con la clave especificada. Nota: Cuando se usa el algoritmo Elliptic Curve Integrated Encryption Scheme (ECIES), el formato del texto cifrado devuelto cumple con el estándar SEC 1: Elliptic Curve Cryptography, Version 2.0. |
| KeyId | string | key-hzz62f1cb66fa42qo**** | El identificador único global de la clave. Si especificó un alias de clave en el parámetro de solicitud KeyId, este elemento de respuesta devuelve el identificador único global de la clave vinculada a dicho alias. |
| Algorithm | string | AES_GCM | El algoritmo de cifrado. |
| PaddingMode | string | PKCS7_PADDING | El modo de relleno. Devuelve un valor solo cuando Algorithm es AES_CBC o AES_ECB; de lo contrario, está vacío. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | El identificador de la solicitud. Alibaba Cloud genera este identificador único para la solicitud. Puede usarlo para solucionar problemas y localizar incidencias. |
Códigos de error
Para consultar la lista de códigos de error, consulte Service error codes.