Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BadPaddingException:尝试解密字节数组时出现解密错误?_Java_Encryption_Rsa_Badpaddingexception - Fatal编程技术网

Java BadPaddingException:尝试解密字节数组时出现解密错误?

Java BadPaddingException:尝试解密字节数组时出现解密错误?,java,encryption,rsa,badpaddingexception,Java,Encryption,Rsa,Badpaddingexception,这是我的代码,出于某种原因,我得到了这个错误,我认为这与使用Cipher类的默认构造函数有关 为什么会出现此错误?为了得到合理的结果,您通常不希望加密任意数量的字节 相反:您可以使用填充来扩大要加密的字节数 请参见“为什么要填充?”为了得到合理的结果,您通常不希望加密任意数量的字节 相反:您可以使用填充来扩大要加密的字节数 请参见“为什么要填充?”BadPaddingException通常表示密码错误。@dpr“错误密码”是什么意思?我正在为一个学校项目尝试一些套接字、服务器->客户端消息加密。

这是我的代码,出于某种原因,我得到了这个错误,我认为这与使用Cipher类的默认构造函数有关


为什么会出现此错误?

为了得到合理的结果,您通常不希望加密任意数量的字节

相反:您可以使用填充来扩大要加密的字节数


请参见“为什么要填充?”

为了得到合理的结果,您通常不希望加密任意数量的字节

相反:您可以使用填充来扩大要加密的字节数


请参见“为什么要填充?”

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);
}