Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Encrypt
Úselo con una AWS SDK o CLI
En los siguientes ejemplos de código se muestra cómo se utiliza Encrypt
.
Los ejemplos de acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Puede ver esta acción en contexto en el siguiente ejemplo de código:
- CLI
-
- AWS CLI
-
Ejemplo 1: Cifrado del contenido de un archivo en Linux o MacOS
El siguiente
encrypt
comando muestra la forma recomendada de cifrar datos con. AWS CLIaws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
base64
\ --decode>
ExampleEncryptedFile
El comando hace varias cosas:
Utiliza el parámetro
--plaintext
para indicar los datos que se van a cifrar. El valor de este parámetro debe estar codificado en base64. El valor delplaintext
parámetro debe estar codificado en base64 o debe utilizar elfileb://
prefijo, que le indica que lea los datos binarios del archivo. Si el AWS CLI archivo no está en el directorio actual, escriba la ruta completa del archivo. Por ejemplo:fileb:///var/tmp/ExamplePlaintextFile
ofileb://C:\Temp\ExamplePlaintextFile
. Para obtener más información sobre la lectura de los valores de los AWS CLI parámetros de un archivo, consulte Carga de parámetros desde un archivo en la AWS Guía del usuario de la interfaz de línea de AWS comandos y en el blog Prácticas recomendadas para los parámetros de archivos localesen la herramienta de línea de comandos. Utiliza --query
los parámetros--output
y para controlar la salida del comando. Estos parámetros extraen los datos cifrados, denominados texto cifrado, de la salida del comando. Para obtener más información sobre el control de la salida, consulte Control Resultado del comando en la guía del usuario de la interfaz de línea de AWS comandos. Utiliza labase64
utilidad para decodificar el resultado extraído en datos binarios. El texto cifrado que devuelve unencrypt
comando correcto es texto codificado en base64. Debe decodificar este texto AWS CLI para poder utilizarlo para descifrarlo.Guarda el texto cifrado binario en un archivo.La parte final del comando () guarda el texto cifrado binario en un archivo para facilitar el descifrado.> ExampleEncryptedFile
Para ver un comando de ejemplo que utiliza el para descifrar datos, consulte los ejemplos de descifrado. AWS CLIEjemplo 2: Utilización del AWS CLI para cifrar datos en Windows
Este ejemplo es igual al anterior, excepto que utiliza la herramienta
certutil
en lugar debase64
. Como se muestra en el siguiente ejemplo, este procedimiento requiere dos comandos.aws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
>
C:\Temp\ExampleEncryptedFile.base64certutil
-decode
C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFileEjemplo 3: Cifrar con una clave asimétrica KMS
El siguiente
encrypt
comando muestra cómo cifrar texto sin formato con una clave asimétrica. KMS El parámetro--encryption-algorithm
es obligatorio. Como en todos losencrypt
CLI comandos, elplaintext
parámetro debe estar codificado en base64 o debe utilizarse elfileb://
prefijo, que indica que debe leer los datos binarios del archivo AWS CLI.aws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --encryption-algorithmRSAES_OAEP_SHA_256
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
base64
\ --decode>
ExampleEncryptedFile
Este comando no genera ninguna salida.
-
Para API obtener más información, consulte Cifrar
en la referencia de comandos.AWS CLI
-
- Java
-
- SDKpara Java 2.x
-
nota
Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. /** * Encrypts the given text asynchronously using the specified KMS client and key ID. * * @param keyId the ID of the KMS key to use for encryption * @param text the text to encrypt * @return a CompletableFuture that completes with the encrypted data as an SdkBytes object */ public CompletableFuture<SdkBytes> encryptDataAsync(String keyId, String text) { SdkBytes myBytes = SdkBytes.fromUtf8String(text); EncryptRequest encryptRequest = EncryptRequest.builder() .keyId(keyId) .plaintext(myBytes) .build(); CompletableFuture<EncryptResponse> responseFuture = getAsyncClient().encrypt(encryptRequest).toCompletableFuture(); return responseFuture.whenComplete((response, ex) -> { if (response != null) { String algorithm = response.encryptionAlgorithm().toString(); logger.info("The string was encrypted with algorithm {}.", algorithm); } else { throw new RuntimeException(ex); } }).thenApply(EncryptResponse::ciphertextBlob); }
-
Para API obtener más información, consulte Cifrar en AWS SDK for Java 2.x APIreferencia.
-
- Kotlin
-
- SDKpara Kotlin
-
nota
Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. suspend fun encryptData(keyIdValue: String): ByteArray? { val text = "This is the text to encrypt by using the AWS KMS Service" val myBytes: ByteArray = text.toByteArray() val encryptRequest = EncryptRequest { keyId = keyIdValue plaintext = myBytes } KmsClient { region = "us-west-2" }.use { kmsClient -> val response = kmsClient.encrypt(encryptRequest) val algorithm: String = response.encryptionAlgorithm.toString() println("The encryption algorithm is $algorithm") // Return the encrypted data. return response.ciphertextBlob } } suspend fun decryptData( encryptedDataVal: ByteArray?, keyIdVal: String?, path: String, ) { val decryptRequest = DecryptRequest { ciphertextBlob = encryptedDataVal keyId = keyIdVal } KmsClient { region = "us-west-2" }.use { kmsClient -> val decryptResponse = kmsClient.decrypt(decryptRequest) val myVal = decryptResponse.plaintext // Write the decrypted data to a file. if (myVal != null) { File(path).writeBytes(myVal) } } }
-
Para API obtener más información, consulta Cómo cifrar como
referencia AWS SDK sobre Kotlin API.
-
- PHP
-
- SDK para PHP
-
nota
Hay más información al respecto. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. /*** * @param string $keyId * @param string $text * @return Result */ public function encrypt(string $keyId, string $text) { try { return $this->client->encrypt([ 'KeyId' => $keyId, 'Plaintext' => $text, ]); }catch(KmsException $caught){ if($caught->getAwsErrorMessage() == "DisabledException"){ echo "The request was rejected because the specified KMS key is not enabled.\n"; } throw $caught; } }
-
Para API obtener más información, consulte Cifrar en AWS SDK for PHP APIreferencia.
-
- Python
-
- SDKpara Python (Boto3)
-
nota
Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. class KeyEncrypt: def __init__(self, kms_client): self.kms_client = kms_client @classmethod def from_client(cls) -> "KeyEncrypt": """ Creates a KeyEncrypt instance with a default KMS client. :return: An instance of KeyEncrypt initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def encrypt(self, key_id: str, text: str) -> str: """ Encrypts text by using the specified key. :param key_id: The ARN or ID of the key to use for encryption. :param text: The text to encrypt. :return: The encrypted version of the text. """ try: response = self.kms_client.encrypt(KeyId=key_id, Plaintext=text.encode()) print( f"The string was encrypted with algorithm {response['EncryptionAlgorithm']}" ) return response["CiphertextBlob"] except ClientError as err: if err.response["Error"]["Code"] == "DisabledException": logger.error( "Could not encrypt because the key %s is disabled.", key_id ) else: logger.error( "Couldn't encrypt text. Here's why: %s", err.response["Error"]["Message"], ) raise
-
Para API obtener más información, consulte Cifrar en la AWS SDKreferencia de Python (Boto3). API
-
- Ruby
-
- SDKpara Ruby
-
nota
Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. require 'aws-sdk-kms' # v2: require 'aws-sdk' # ARN of the AWS KMS key. # # Replace the fictitious key ARN with a valid key ID keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' text = '1234567890' client = Aws::KMS::Client.new(region: 'us-west-2') resp = client.encrypt({ key_id: keyId, plaintext: text }) # Display a readable version of the resulting encrypted blob. puts 'Blob:' puts resp.ciphertext_blob.unpack('H*')
-
Para API obtener más información, consulte Cifrar en AWS SDK for Ruby APIreferencia.
-
- Rust
-
- SDKpara Rust
-
nota
Hay más información GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. async fn encrypt_string( verbose: bool, client: &Client, text: &str, key: &str, out_file: &str, ) -> Result<(), Error> { let blob = Blob::new(text.as_bytes()); let resp = client.encrypt().key_id(key).plaintext(blob).send().await?; // Did we get an encrypted blob? let blob = resp.ciphertext_blob.expect("Could not get encrypted text"); let bytes = blob.as_ref(); let s = base64::encode(bytes); let mut ofile = File::create(out_file).expect("unable to create file"); ofile.write_all(s.as_bytes()).expect("unable to write"); if verbose { println!("Wrote the following to {:?}", out_file); println!("{}", s); } Ok(()) }
-
Para API obtener más información, consulte Cifrar AWS
SDKpara obtener información sobre Rust API.
-
Para obtener una lista completa de guías para AWS SDK desarrolladores y ejemplos de código, consulteUso de este servicio con un SDK de AWS. En este tema también se incluye información sobre cómo empezar y detalles sobre SDK las versiones anteriores.