jks转bks所遇到的那些坑

我们确实不是很强大的人,但是我们也有存在的价值的!人生呐,并不是只有输和赢两种的啊!你也有着,只有你才能做的事情的啊! ——热血高校2

为什么要把jks转为bks?

因为:Java平台默认识别jks格式的证书文件,但是android平台只识别bks格式的证书文件。

这段文字来自鸿洋大神的文章,想了解的可以看这里

怎么转?

有人说鸿洋大神写得那么明白,那你为什么还要多费口舌写这篇文章?
因为我按照鸿洋大神的步骤踩了许多坑。
第一步:
去Portecle下载Download portecle-1.9.zip (3.4 MB)。
第二步:
鸿洋大神的文章是这样写的:

解压后,里面包含bcprov.jar文件,使用jave -jar bcprov.jar即可打开GUI界面。

然而,并不是这样,正确的做法应该是:

打开portecle.jar文件,而不是bcprov.jar

坑来了

好了,到了这一步,你按照洋神的gif图开始转化,如果你的签名文件很小,那么可以顺利转化,但是,你有可能遇到这种情况:
java.security.KeyStoreException:java.io.IOException:Error initialising store of key store:
java.security.invalidKeyException:lllegal key size

这种情况也很简单,

解决办法是下载JCE然后替换掉JDK\jre\lib\security和JRE\lib\security这两个目录下的同名文件,并重启Portecle

上面这个解决方法来自这里,有兴趣可以自行查阅,但是有一点需要特别注意

JDK\jre\lib\security\policy和JRE\lib\security\policy这两个目录下,都有两个文件夹,limited和unlimited,这两个文件夹下的文件都需要被上面下载的JCE解压后的文件替换。

这样就不会再出现上面的那个错误了。

为什么会出现这种情况?

原因:
Illegal key size or default parameters 是指密钥长度受限制,
java运行时环境读到的是受限的policy文件。
policy文件位于${java_home}/jre/lib/security 目录下。
这种限制是因为美国对软件出口的控制。

上面这句话来自这里

福利?

这篇文章的作者提供了一个不错的工具类,可以很方便进行单向认证和双向认证。
本人水平有限,如有错误,欢迎指出。

参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值