当前位置: 代码迷 >> J2EE >> 求解:非对称加解密有关问题
  详细解决方案

求解:非对称加解密有关问题

热度:54   发布时间:2016-04-21 21:55:12.0
求解:非对称加解密问题
A端请求加密、BASE64编码;
B端响应BASE64解码、解密;


A端使用jdk1.4,这个版本本身没有支持非对称加解密的provider,所以需要自己下载一个,我下载了bcprov-jdk14-146.jar,并在加密中手动添加provider,代码:Security.addProvider(new BouncyCastleProvider());

B端使用jdk1.5或者jdk1.6,这两个版本都有自带的provider,所以不需要下载。

解密的时候报错:javax.crypto.BadPaddingException: Blocktype mismatch: 0


经测试,使用同样的证书、同样的字符串在AB两种环境下分别加密编码后的结果是不一样的,个人怀疑是否因为不同的provider引起的。求解!

------解决方案--------------------
BASE64有这么复杂么
------解决方案--------------------

         String author = new sun.misc.BASE64Encoder()
               .encode((username + ":" + password).getBytes());

------解决方案--------------------
B端使用jdk1.5或者jdk1.6  使用下和jdk1.4相同的provider看看吧。
  相关解决方案