Die Daten können problemlos verschlüsselt werden, aber während der Entschlüsselung wird die Fehlermeldung angezeigt.
Fehler: Kein konfigurierter Schlüsselring konnte den Datenschlüssel entschlüsseln. Die Liste der aufgetretenen Ausnahmen ist über list verfügbar.
Bitte finden Sie unten den Java-Code
Code: Select all
keyArn = "arn of ny aws kms key";
plaintext = "Text to encrypt";
final AwsCrypto crypto = AwsCrypto.builder()
.withCommitmentPolicy(CommitmentPolicy.RequireEncryptRequireDecrypt)
.build(); System.out.println("MaterialProvidersConfig.builder().build():"+MaterialProvidersConfig.builder().build());
final MaterialProviders materialProviders = MaterialProviders.builder()
.MaterialProvidersConfig(MaterialProvidersConfig.builder().build())
.build();
final CreateAwsKmsMultiKeyringInput keyringInput =
CreateAwsKmsMultiKeyringInput.builder().generator(keyArn).build();
final IKeyring kmsKeyring = materialProviders.CreateAwsKmsMultiKeyring(keyringInput);
// Encrypt the data
final CryptoResult encryptResult = crypto.encryptData(kmsKeyring, plaintext.getBytes(StandardCharsets.UTF_8));
final byte[] ciphertext = encryptResult.getResult();
System.out.println("Ciphertext: " + Arrays.toString(ciphertext));
String base64Ciphertext = Base64.getEncoder().encodeToString(ciphertext);
System.out.println(base64Ciphertext);
// Decrypt the data
final CryptoResult decryptResult =
crypto.decryptData(
kmsKeyring,
ciphertext
);
assert Arrays.equals(decryptResult.getResult(), plaintext.getBytes(StandardCharsets.UTF_8));
// The data is correct, so return it.
System.out.println("Decrypted: " + new String(decryptResult.getResult(), StandardCharsets.UTF_8));
Code: Select all
Exception in thread "main" software.amazon.cryptography.materialproviders.model.CollectionOfErrors: No Configured Keyring was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.
at software.amazon.cryptography.materialproviders.model.CollectionOfErrors$BuilderImpl.build(CollectionOfErrors.java:136)
at software.amazon.cryptography.materialproviders.ToNative.Error(ToNative.java:129)
at software.amazon.cryptography.materialproviders.ToNative.Error(ToNative.java:232)
at software.amazon.cryptography.materialproviders.CryptographicMaterialsManager.DecryptMaterials(CryptographicMaterialsManager.java:48)
at com.amazonaws.encryptionsdk.CMMHandler.decryptMaterials(CMMHandler.java:100)
at com.amazonaws.encryptionsdk.internal.DecryptionHandler.readHeaderFields(DecryptionHandler.java:796)
at com.amazonaws.encryptionsdk.internal.DecryptionHandler.(DecryptionHandler.java:143)
at com.amazonaws.encryptionsdk.internal.DecryptionHandler.create(DecryptionHandler.java:465)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:822)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:768)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:759)
at com.amazonaws.encryptionsdk.AwsCrypto.decryptData(AwsCrypto.java:734)
at com.amazonaws.encryptionsdk.keyrings.StringExample.main(StringExample.java:67)