Java BadPaddingException:尝试解密字节数组时出现解密错误?
这是我的代码,出于某种原因,我得到了这个错误,我认为这与使用Cipher类的默认构造函数有关Java BadPaddingException:尝试解密字节数组时出现解密错误?,java,encryption,rsa,badpaddingexception,Java,Encryption,Rsa,Badpaddingexception,这是我的代码,出于某种原因,我得到了这个错误,我认为这与使用Cipher类的默认构造函数有关 为什么会出现此错误?为了得到合理的结果,您通常不希望加密任意数量的字节 相反:您可以使用填充来扩大要加密的字节数 请参见“为什么要填充?”为了得到合理的结果,您通常不希望加密任意数量的字节 相反:您可以使用填充来扩大要加密的字节数 请参见“为什么要填充?”BadPaddingException通常表示密码错误。@dpr“错误密码”是什么意思?我正在为一个学校项目尝试一些套接字、服务器->客户端消息加密。
为什么会出现此错误?为了得到合理的结果,您通常不希望加密任意数量的字节 相反:您可以使用填充来扩大要加密的字节数
请参见“为什么要填充?”为了得到合理的结果,您通常不希望加密任意数量的字节 相反:您可以使用填充来扩大要加密的字节数
请参见“为什么要填充?”BadPaddingException通常表示密码错误。@dpr“错误密码”是什么意思?我正在为一个学校项目尝试一些套接字、服务器->客户端消息加密。“我认为这与使用密码类的默认构造函数有关。”您不使用任何构造函数,尤其是默认构造函数(该类无论如何都没有).这个问题中有大量缺失的信息可能是相关的。您如何对其进行加密,如何编码和传输加密结果,在尝试解密之前如何接收和解码
Cipher.getInstance(“RSA”)代码>使用平台默认值,这是常见的错误源。因此,这立即引发了一个问题,即加密平台是否不同于解密平台。与新字符串(decryptedText)相同代码>欢迎使用堆栈溢出!填充错误可能意味着很多事情:错误的密钥、错误的编码、不完整/过满的密文。您应该显示加密代码并给出您使用的示例值。否则,很容易猜测此代码(或加密代码)的错误。简而言之,请创建一个.BadPaddingException通常表示密码错误。@dpr“错误密码”是什么意思?我正在为一个学校项目尝试一些套接字、服务器->客户端消息加密。“我认为这与使用密码类的默认构造函数有关。”您不使用任何构造函数,尤其是默认构造函数(该类无论如何都没有).这个问题中有大量缺失的信息可能是相关的。您如何对其进行加密,如何编码和传输加密结果,在尝试解密之前如何接收和解码Cipher.getInstance(“RSA”)代码>使用平台默认值,这是常见的错误源。因此,这立即引发了一个问题,即加密平台是否不同于解密平台。与新字符串(decryptedText)相同代码>欢迎使用堆栈溢出!填充错误可能意味着很多事情:错误的密钥、错误的编码、不完整/过满的密文。您应该显示加密代码并给出您使用的示例值。否则,很容易猜测此代码(或加密代码)的错误。简而言之,请创建一个。现在就阅读它。那么,填充可以解决我的问题吗。实际上,你想建立一个类似于:你将什么样的数据传递到这个方法中?现在就读取它。那么,填充可以解决我的问题吗。事实上,您想提出一个类似的问题:您将什么样的数据传递到该方法中?
public static String decrypt(byte[] text, PrivateKey key) {
byte[] decryptedText = null;
try {
final Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, key);
decryptedText = cipher.doFinal(text);
} catch (Exception e) {
e.printStackTrace();
}
return new String(decryptedText);
}