padding选取都是一样的,加密成功,解密失败,很奇怪。#主要代码public static byte[] rsa_encrypt(byte[] bArr, byte[] bArr2) {try {Key a = MyKey.getPublicKey(bArr2);if(a == null)System.out.println("get pub key error!");Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");instance.init(Cipher.ENCRYPT_MODE, a);return instance.doFinal(bArr);} catch (Exception e) {e.printStackTrace();return null;}}public static byte[] rsa_decrypt(byte[] bArr, byte[] bArr2) {
try {
Key a = MyKey.getPrivateKey(bArr2);
if(a == null)
System.out.println("get pri key error!");
Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
instance.init(Cipher.DECRYPT_MODE, a);
return instance.doFinal(bArr);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}#报错信息javax.crypto.BadPaddingException: Decryption errorat sun.security.rsa.RSAPadding.unpadV15(Unknown Source)at sun.security.rsa.RSAPadding.unpad(Unknown Source)at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:363)at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:389)at javax.crypto.Cipher.doFinal(Cipher.java:2164)at qqpinyin.EncryptTool.rsa_decrypt(EncryptTool.java:134)at qqpinyin.main.key_decrypt(main.java:80)at qqpinyin.main.main(main.java:96)
2 回答

饮歌长啸
TA贡献1951条经验 获得超3个赞
bArr 多大?加密 buffer 至少要和 public key-11 一樣大(比方 117), 解密buffer 至少要和 public key 同大(比方 128)。
添加回答
举报
0/150
提交
取消