簡體   English   中英

如何解決線程“main”中的異常com.amazonaws.AmazonClientException:無法構建密碼:使用aws s3非法密鑰大小

[英]how to resolve Exception in thread “main” com.amazonaws.AmazonClientException: Unable to build cipher: Illegal key size using aws s3

我正在嘗試使用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.

當我試圖將對象用於使用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

似乎問題在於密鑰大小和IMO亞馬遜在其代碼中的某處硬編碼。 解決方案可能是獲取無限強度文件,您可以從以下位置下載:

Java密碼術擴展(JCE)無限強度管轄政策文件6

Java密碼術擴展(JCE)無限強度管轄權政策文件7下載

Java密碼術擴展(JCE)無限強度管轄權政策文件8下載

${java.home}/jre/lib/security/安裝該文件。

我通過在IAM管理控制台中創建加密密鑰來解決此問題。 我在加密時使用了加密密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM