为了账号安全,请及时绑定邮箱和手机立即绑定

InvalidKeyException非法密钥大小

InvalidKeyException非法密钥大小

蝴蝶刀刀 2019-07-06 17:39:16
InvalidKeyException非法密钥大小我有一个在我的开发MacBookPro上运行很好的测试,但是无法在持续集成TeamCity服务器中运行。错误如下:java.security.InvalidKeyException: Illegal key size     at javax.crypto.Cipher.a(DashoA13*..)     at javax.crypto.Cipher.init(DashoA13*..)     at javax.crypto.Cipher.init(DashoA13*..)开发盒和TeamCity都使用Java1.6,我使用BouncyCastleLibrary来满足特殊AES加密的需要。守则如下:private byte[] aesEncryptedInfo(String info) throws UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException,  InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidParameterSpecException, InvalidAlgorithmParameterException,  NoSuchProviderException {     Security.addProvider(new BouncyCastleProvider());     SecretKey secret = new SecretKeySpec(CUSTOMLONGSECRETKEY.substring(0, 32).getBytes(), "AES");     Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");     cipher.init(Cipher.ENCRYPT_MODE, secret, new IvParameterSpec(VECTOR_SECRET_KEY.getBytes()));     return cipher.doFinal(info.getBytes("UTF-8"));}
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

我也有类似的问题,但在我的例子中,有一个路径错误。

Java_HOME是jdk1.6.0_18,所以我将两个罐子放入jdk1.6.0_18/lib/security,但在jdk1.6.0_18中,jre目录。这两个文件都应该放进去jdk1.6.0_18/jre/lib/security.


查看完整回答
反对 回复 2019-07-06
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

除了安装策略文件之外,还要确保CUSTOMLONGSECRETKEY...getBytes()确实会产生32个字节数组。我会用CUSTOMLONGSECRETKEY.getBytes(some encoding)并从中得到前32个字节。更好的是,使用完整的秘密密钥为AES派生出您所需大小的密钥。


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 564 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信