如何解决线程"main"中的异常com.amazonaws.AmazonClientException:无法构建密码:使用aws s3非法密钥大小

use*_*783 7 java encryption amazon-s3 amazon-web-services

我正在尝试使用amazon aws进行加密和解密.我有例外

 Exception in thread "main" com.amazonaws.AmazonClientException: Unable to build cipher: Illegal key size
    Make sure you have the JCE unlimited strength policy files installed and configured for your JVM
        at  com.amazonaws.services.s3.internal.crypto.ContentCryptoScheme.createCipherLite(ContentCryptoScheme.java:190)
        at com.amazonaws.services.s3.internal.crypto.ContentCryptoMaterial.wrap(ContentCryptoMaterial.java:823)
        at com.amazonaws.services.s3.internal.crypto.S3CryptoModuleBase.buildContentCryptoMaterial(S3CryptoModuleBase.java:535)
        at com.amazonaws.services.s3.internal.crypto.S3CryptoModuleBase.newContentCryptoMaterial(S3CryptoModuleBase.java:483)
        at com.amazonaws.services.s3.internal.crypto.S3CryptoModuleBase.createContentCryptoMaterial(S3CryptoModuleBase.java:449)
        at com.amazonaws.services.s3.internal.crypto.S3CryptoModuleBase.putObjectUsingMetadata(S3CryptoModuleBase.java:165)
        at com.amazonaws.services.s3.internal.crypto.S3CryptoModuleBase.putObjectSecurely(S3CryptoModuleBase.java:159)
        at com.amazonaws.services.s3.internal.crypto.CryptoModuleDispatcher.putObjectSecurely(CryptoModuleDispatcher.java:107)
        at com.amazonaws.services.s3.AmazonS3EncryptionClient.putObject(AmazonS3EncryptionClient.java:485)
        at testKMSkeyUploadObject.main(testKMSkeyUploadObject.java:91)
    Caused by: java.security.InvalidKeyException: Illegal key size
        at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039)
        at javax.crypto.Cipher.implInit(Cipher.java:805)
        at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
        at javax.crypto.Cipher.init(Cipher.java:1396)
        at javax.crypto.Cipher.init(Cipher.java:1327)
        at com.amazonaws.services.s3.internal.crypto.ContentCryptoScheme.createCipherLite(ContentCryptoScheme.java:187)
        ... 9 more

please help me.
Run Code Online (Sandbox Code Playgroud)

当我试图将对象用于使用AmazonS3EncryptionClient进行加密时,我得到了异常.如何解决此错误.

AmazonS3EncryptionClient s3 = new AmazonS3EncryptionClient(credentials,materialProvider);

PutObjectRequest putRequest = new PutObjectRequest(
                            bucket, kms_cmk_id, new ByteArrayInputStream(plaintext), metadata);

ObjectMetadata objectMetadata = new ObjectMetadata();
                    objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);   

putRequest.setMetadata(objectMetadata);
System.out.println(putRequest.getKey());
s3.putObject(putRequest); //getting exception here
Run Code Online (Sandbox Code Playgroud)

use*_*783 0

我通过在 IAM 管理控制台中创建加密密钥解决了这个问题。我在加密时使用了该加密密钥。