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 fitur rotasi kunci diaktifkan untuk kunci yang dilindungi perangkat lunak tersebut, panggil AdvanceEncrypt alih-alih Encrypt. Jika tidak, fitur rotasi kunci tidak akan berlaku. Untuk informasi selengkapnya, lihat Konfigurasikan rotasi kunci.
Untuk informasi lebih lanjut mengenai spesifikasi kunci, mode enkripsi, enkripsi kunci rahasia, dan versi kunci, lihat Jenis dan spesifikasi kunci.
Catatan penggunaan
Semua parameter permintaan dikodekan dengan Protocol Buffers. Badan permintaan yang dihasilkan tidak boleh melebihi 3 MB. Jika volume data melebihi 3 MB, server akan menolak permintaan dan mengembalikan kode status HTTP 413.
Untuk satu panggilan enkripsi atau dekripsi, pastikan data berada dalam batas berikut:
Jenis kunci | Volume data maksimum yang direkomendasikan |
Kunci simetris | 6 KB |
Kunci asimetris | 1 KB |
Jika data Anda melebihi batas ini, gunakan Enkripsi amplop sebagai gantinya. Untuk informasi selengkapnya, lihat Enkripsi amplop.
Semakin besar volume data dalam satu panggilan, semakin tinggi risiko kegagalan transmisi jaringan, semakin lama waktu transmisi, dan semakin lama instans KMS membutuhkan waktu untuk menyelesaikan enkripsi atau dekripsi data.
Parameter permintaan
| Parameter | Tipe | Wajib | Contoh | Deskripsi |
|---|---|---|---|---|
| KeyId | string | Ya | key-hzz62f1cb66fa42qo**** | ID unik global dari kunci. Anda juga dapat menentukan alias yang terikat ke 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) yang digunakan untuk enkripsi data. Hanya berlaku ketika algoritma enkripsi (Algorithm) adalah AES_GCM, AES_CBC. Panjang valid: 16 byte ketika Algorithm adalah AES_CBC; 12 byte ketika Algorithm adalah AES_GCM. Jika tidak ditentukan, KMS akan menghasilkan nilai acak. Jangan atur parameter ini dan biarkan KMS menghasilkannya secara acak. |
| Aad | binary | Tidak | Data biner | Additional authenticated data (AAD) yang digunakan untuk autentikasi mode GCM selama enkripsi data. Anda dapat mengatur parameter ini ketika kuncinya merupakan kunci simetris dan algoritma enkripsi (Algorithm) adalah AES_GCM atau SM4_GCM. Jika Anda mengatur parameter ini, Anda harus memberikan nilai yang sama saat memanggil Decrypt untuk mendekripsi data terenkripsi tersebut. |
| 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, dengan K sebagai 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 data. Mengembalikan nilai valid hanya ketika algoritma enkripsi (Algorithm) adalah AES_GCM, AES_CBC; mengembalikan nilai kosong dalam semua kasus lainnya. |
| CiphertextBlob | bytes | Data biner | BLOB ciphertext dari data setelah dienkripsi dengan kunci yang ditentukan. Catatan: Ketika algoritma Elliptic Curve Integrated Encryption Scheme (ECIES) digunakan, format ciphertext yang dikembalikan mematuhi standar SEC 1: Elliptic Curve Cryptography, Versi 2.0. |
| KeyId | string | key-hzz62f1cb66fa42qo**** | Identifier unik global dari kunci. Jika Anda menentukan alias kunci dalam parameter permintaan KeyId, elemen respons ini akan mengembalikan identifier unik global dari 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 untuk kasus lainnya. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | ID permintaan. Alibaba Cloud menghasilkan identifier unik ini untuk permintaan tersebut. Anda dapat menggunakannya untuk pemecahan masalah dan pelacakan isu. |
Kode kesalahan
Untuk daftar kode kesalahan, lihat Kode kesalahan layanan.