Mengenkripsi teks biasa menjadi ciphertext.
Deskripsi operasi
Key Management Service (KMS) menyediakan dua operasi enkripsi: Encrypt dan AdvanceEncrypt. Perbedaan utamanya terletak pada versi kunci yang digunakan dan operasi dekripsi yang harus Anda panggil setelahnya.
| Encrypt | AdvanceEncrypt | |
|---|---|---|
| Versi kunci yang digunakan | Versi awal | Versi utama |
| Operasi dekripsi yang kompatibel | Decrypt atau AdvanceDecrypt | AdvanceDecrypt saja |
Jika Anda menggunakan kunci simetris dalam instans manajemen kunci perangkat lunak dan mengaktifkan rotasi otomatis, gunakan AdvanceEncrypt alih-alih Encrypt. Penggunaan Encrypt dengan rotasi otomatis yang diaktifkan akan menonaktifkan fitur rotasi kunci. Untuk informasi selengkapnya, lihat Konfigurasikan rotasi kunci.
Untuk detail spesifikasi kunci, mode enkripsi, dan versi kunci, lihat Jenis dan spesifikasi kunci.
Catatan penggunaan
Badan permintaan tidak boleh melebihi 3 MB setelah dikodekan dengan Protocol Buffers. Jika batas ini dilampaui, server akan menolak permintaan dan mengembalikan HTTP 413.
Untuk satu operasi enkripsi atau dekripsi, pastikan data berada dalam batas berikut:
Kunci simetris: 6 KB
Kunci asimetris: 1 KB
Untuk data yang lebih besar, gunakan enkripsi amplop.
Muatan besar meningkatkan risiko kegagalan jaringan, memperpanjang waktu transmisi, dan menambah latensi pemrosesan KMS.
Parameter permintaan
| Parameter | Tipe | Wajib | Contoh | Deskripsi |
|---|---|---|---|---|
| KeyId | string | Ya | key-hzz62f1cb66fa42qo**** | ID unik global dari kunci. Anda juga dapat menentukan alias yang terikat pada kunci tersebut. |
| Plaintext | bytes | Ya | Data biner | Teks biasa yang akan dienkripsi. |
| Algorithm | string | Tidak | AES_GCM | Algoritma enkripsi. Jika tidak ditentukan, KMS menggunakan algoritma default untuk kunci tersebut. Untuk informasi selengkapnya, lihat Jenis dan spesifikasi kunci. |
| Iv | bytes | Tidak | Data biner | Vektor inisialisasi (IV) untuk enkripsi. Hanya berlaku ketika Algorithm diatur ke AES_GCM atau AES_CBC. Panjang valid: 12 byte untuk AES_GCM, 16 byte untuk AES_CBC. Jika tidak ditentukan, KMS menghasilkan nilai acak. Jangan atur parameter ini. |
| Aad | binary | Tidak | Data biner | Additional authenticated data (AAD) untuk otentikasi mode GCM. Berlaku ketika kunci merupakan kunci simetris dan Algorithm diatur ke AES_GCM atau SM4_GCM. Jika ditentukan, Anda juga harus meneruskan nilai yang sama saat memanggil Decrypt. |
| PaddingMode | string | Tidak | PKCS7_PADDING | Mode padding. Diperlukan hanya ketika Algorithm diatur ke AES_CBC atau AES_ECB. Nilai valid: PKCS7_PADDING (default) dan NO_PADDING. |
Nilai PaddingMode
`PKCS7_PADDING` (default): Menggunakan padding PKCS#7. Jika input berukuran L byte, KMS menambahkan K − (L mod K) byte padding, di mana K adalah ukuran blok cipher.
`NO_PADDING`: Tidak ada padding yang ditambahkan. Panjang teks biasa harus merupakan kelipatan bilangan bulat dari ukuran blok cipher.
Elemen respons
| Parameter | Tipe | Contoh | Deskripsi |
|---|---|---|---|
| Iv | bytes | Data biner | Vektor inisialisasi (IV) yang digunakan untuk enkripsi. Mengembalikan nilai hanya ketika Algorithm adalah AES_GCM atau AES_CBC; kosong jika tidak. |
| CiphertextBlob | bytes | Data biner | Ciphertext terenkripsi. Ketika algoritma Elliptic Curve Integrated Encryption Scheme (ECIES) digunakan, format ciphertext mengikuti standar SEC 1: Elliptic Curve Cryptography, Versi 2.0. |
| KeyId | string | key-hzz62f1cb66fa42qo**** | ID unik global dari kunci. Jika Anda menentukan alias dalam permintaan, bidang ini mengembalikan ID kunci yang terikat pada alias tersebut. |
| Algorithm | string | AES_GCM | Algoritma enkripsi. |
| PaddingMode | string | PKCS7_PADDING | Mode padding. Mengembalikan nilai hanya ketika Algorithm adalah AES_CBC atau AES_ECB; kosong jika tidak. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | ID permintaan, digunakan untuk melacak dan memecahkan masalah. |
Kode kesalahan
Untuk daftar kode kesalahan, lihat Kode kesalahan layanan.