【发布时间】:2015-01-12 08:24:49
【问题描述】:
我想制作一个生成签名的 Java 应用程序,但遇到了无限强度策略文件的问题, 在许多帖子中讨论过,例如How to avoid installing "Unlimited Strength" JCE policy files when deploying an application?
当然,当我切换策略文件时一切正常,但我宁愿避免这种情况,因为我不打算使用对称加密,所以我猜测这是可能的。我的问题是我已经在 KeyStore 的加载方法中得到了 Illegal key size 异常。
我的问题:
1) 我可以对密钥库中的内部加密进行任何操作,以使密钥大小限制不需要用户更改策略文件吗?
2) 我知道 BouncyCastle 轻量级 API 可能是一种选择。如果是这样,我如何使用该 API 加载密钥库?
Security.addProvider(new BouncyCastleProvider());
//Get private key
KeyStore keyStore = KeyStore.getInstance("PKCS12","BC");
String pwd = "password";
FileInputStream finJKS = new FileInputStream("C:\\TEMP\\host.p12");
keyStore.load(finJKS,pwd.toCharArray());
运行: java.io.IOException:异常解密数据 - java.security.InvalidKeyException:非法密钥大小
在 Windows 上的 Netbeans 7.4 上的 JDK 7u51 中运行 jre。
最好的问候
【问题讨论】: