Setelah membuat kunci master pelanggan (CMK) Standar Enkripsi Lanjutan (AES) atau SM4, Anda dapat menggunakan kode dari SDK Key Management Service (KMS) untuk mengenkripsi data. Contoh dalam topik ini menggunakan KMS SDK for Java untuk enkripsi data.
Persiapan
Dapatkan deklarasi dependensi KMS SDK for Java. Untuk informasi lebih lanjut tentang versi SDK yang diperlukan, lihat Ikhtisar SDK. Contoh kode:
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.2</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-kms</artifactId> <version>2.14.0</version> </dependency>Dapatkan titik akhir KMS berdasarkan wilayah KMS. Untuk informasi lebih lanjut, lihat Membuat Permintaan API.
CatatanDalam contoh ini, Anda dapat menentukan ID wilayah untuk mengakses titik akhir publik KMS. Untuk informasi lebih lanjut tentang cara mengakses alamat virtual private cloud (VPC) KMS, lihat Contoh Penggunaan KMS SDK for Java.
Enkripsi data
Gunakan kode berikut dari KMS SDK for Java untuk mengenkripsi data:
Pasangan AccessKey akun Alibaba Cloud memiliki izin untuk semua Operasi API. Menggunakan pasangan AccessKey untuk melakukan operasi adalah operasi berisiko tinggi. Selain itu, gunakan pengguna RAM untuk memanggil Operasi API atau melakukan pemeliharaan rutin. Kami menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda. Jika Anda melakukannya, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya yang dimiliki oleh akun Anda mungkin terganggu.
Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET untuk mengimplementasikan otentikasi identitas.
Untuk informasi lebih lanjut tentang cara mengonfigurasi informasi autentikasi, lihat Kelola Kredensial Akses.
Metode yang digunakan untuk mengonfigurasi variabel lingkungan bervariasi berdasarkan sistem operasi. Untuk informasi lebih lanjut, lihat Konfigurasikan Variabel Lingkungan di Linux, macOS, dan Windows.
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.io.UnsupportedEncodingException;
import com.aliyuncs.kms.model.v20160120.*;
import com.aliyuncs.utils.Base64Helper;
public class Encrypt {
public static void main(String[] args) {
/*
* 1. Tentukan wilayah tempat CMK Anda berada.
* 2. Tentukan ID AccessKey dan rahasia AccessKey yang diperlukan untuk mengakses KMS.
*/
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
try {
EncryptRequest request = new EncryptRequest();
// Tentukan alias CMK atau ID CMK yang digunakan untuk mengenkripsi "Hello world".
request.setKeyId("alias/Apollo/SalaryEncryptionKey");
request.setPlaintext(Base64Helper.encode("Hello world", null));
EncryptResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException | UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}Untuk informasi lebih lanjut tentang kode contoh, kunjungi alibabacloud-kms-demo.