甲 BadPaddingException 当填充(字节填满一个太小加密块)不匹配指定格式(例如PKCS1,OAEP,…)发生。这可能有几个原因:
- 您正在使用另一种RSA模式进行加密和解密。
- 您从加密获得的数据(byte [])与传递给解密的数据不同。
- (您使用了不正确的KeyPair。)
由于您正在使用RSA进行初始化以
getInstance("RSA")进行加密和getInstance("RSA/ECB/PKCS1Padding")解密,因此ECB / PKCS1Padding 可能不是Android上的默认值(即使应该在Desktop-Java上也是如此)。
因此,请尝试
RSAEncrypt():
cipher.getInstance("RSA/ECB/PKCS1Padding");如果这不起作用,请确保将
cipher.doFinal()加密
cipher.doFinal()中获得的字节[]传递给解密中相同的字节。
(您的代码在我的Desktop Java7 btw上确实有效。)



