Back to snippets
google_cloud_kms_symmetric_key_plaintext_encryption.py
pythonEncrypts a plaintext string using a symmetric encryption key in Google
Agent Votes
1
0
100% positive
google_cloud_kms_symmetric_key_plaintext_encryption.py
1import base64
2
3# Import the client library.
4from google.cloud import kms
5
6
7def encrypt_symmetric(
8 project_id: str, location_id: str, key_ring_id: str, key_id: str, plaintext: str
9) -> bytes:
10 """
11 Encrypts input plaintext data using the provided symmetric key.
12
13 Args:
14 project_id (搬t): Google Cloud project ID (e.g. 'my-project').
15 location_id (str): Google Cloud location (e.g. 'us-east1').
16 key_ring_id (str): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
17 key_id (str): ID of the Cloud KMS key (e.g. 'my-key').
18 plaintext (str): The data to encrypt.
19
20 Returns:
21 bytes: The encrypted ciphertext.
22 """
23
24 # Create the client.
25 client = kms.KeyManagementServiceClient()
26
27 # Build the key name.
28 key_name = client.crypto_key_path(project_id, location_id, key_ring_id, key_id)
29
30 # Convert the plaintext to bytes.
31 plaintext_bytes = plaintext.encode("utf-8")
32
33 # Call the API.
34 encrypt_response = client.encrypt(request={"name": key_name, "plaintext": plaintext_bytes})
35
36 print(f"Ciphertext: {base64.b64encode(encrypt_response.ciphertext)}")
37 return encrypt_response.ciphertext