问题标签 [badpaddingexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1664 浏览

java - BadPaddingException:数据必须从零开始 - 为什么?

我需要编写一个 java 代码,使用客户提供的私钥/公钥来加密/解密消息。这是我所做的:

  • 我从客户那里得到了 PKCS#1 格式的私钥(它以 -----BEGIN RSA PRIVATE KEY----- 开头)

  • 我使用以下命令将其转换为 PKCS#8:

    /li>
  • 现在我有了 PKCS#8 格式的私钥(以 -----BEGIN PRIVATE KEY----- 开头)

  • 我已经使用以下命令从私钥中提取了公钥(尝试了两种格式,并且我得到了相同的公钥):

    /li>
  • 我编写了以下方法来读取 private_pkcs8.key 文件的私钥:

    /li>
  • 我编写了以下方法来从 public.key 文件中读取公钥

    /li>
  • 我写了以下加密方法

    /li>
  • 我写了以下解密方法

    /li>
  • 我编写了以下主要测试应用程序,它试图加密一个简单的字符串并将其解密回来。

    /li>
  • 加密没问题,但是当我尝试将其解密回原始消息时,出现以下异常:

    /li>

注意JVM也会崩溃,这很奇怪。

  • 当我替换了私钥/公钥并改用 KeyPairGenerator 时,一切正常。这使我得出结论,密钥、读取密钥的方式或用于加密/解密的算法有问题。(我尝试过使用“RSA”、“RSA/ECB/PKCS1Padding” - 没有运气)

我在这个问题上花了超过 2 天的时间。我确保我使用相同的公钥/私钥对,我没有尝试将 byte[] 转换为 String。我已经“按部就班”做了一切

对此问题的任何帮助将不胜感激。我可以向客户询问有关钥匙的一些问题,这将帮助我解开这个谜吗?为什么JVM也会崩溃?

谢谢盖伊·胡达拉

0 投票
1 回答
13338 浏览

java - javax.crypto.BadPaddingException:消息大于模数

我正在做一个项目,我需要在 RMI 网络上显示一些加密解密。我为此使用 RSA 系统。在解密时,我的代码给了我以下错误:

这是我的解密代码:

我尝试在加密时使用 cipher.update(byte[] data) 。我有字符串数据,我在加密时使用 string.getByte() 将其转换为字节数组。如果我使用更新方法,它会给我一个 IllegalBlockException 错误,即数据不能大于模数。

请帮我解决这个问题。我无法在我的代码中找到错误。

0 投票
2 回答
18447 浏览

java - Java AES字符串解密“给定的最终块未正确填充”

对于所有仇恨者,我阅读了许多类似的主题,但没有一个是有帮助的。

例如。这里javax.crypto.BadPaddingException: Given final block not proper padded error while decryption or here Given final block not proper padded

我想加密然后解密字符串。阅读有关“未正确填充最终块”异常的许多主题,但这些解决方案均无效。

我的课:

问题是,当我解密字符串(大约 4/10 的镜头)时,我得到了这个异常:

有人知道要在这里更改什么(键?*.doFinal() 方法?)以使其工作吗?

@对于那些好奇的人-方法必须是静态的,因为这是更大的一部分;)

0 投票
0 回答
5760 浏览

java - javax.crypto.BadPaddingException:给定最终块未正确填充

我正在使用KeyGenerator该类创建一个 AES 密钥。然后我公开了一个 Web 服务来使用这个 AES 密钥进行加密和解密,并在 Web 服务响应中返回密文/纯文本。

加密工作得很好,但是当我调用 Web 服务(从SOAP UI)进行解密时,我javax.crypto.BadPaddingException: Given final block not properly padded间歇性地遇到异常。

我正在使用十六进制(使用org.apache.commons.codec.binary.Hex类)编码/解码来转换字节,String反之亦然。

我创建了一个独立的类来测试这段代码并且没有任何问题。

关于如何解决这个问题的任何想法?

0 投票
1 回答
7533 浏览

java - 为什么我会从 RSA 解密中得到 BadPaddingException?

我使用 RSA 算法进行加密和解密。当我加密一个字符串时,它工作正常。当我解密时,我得到一个错误。下面,我发布我的代码。

0 投票
1 回答
4022 浏览

java - BadPaddingException:在 android 解密块中损坏的垫块

我知道这个问题已经被问过好几次了,但它似乎不适用于我的代码。

解密时出现异常:

“javax.crypto.BadPaddingException:垫块损坏”

我的代码是:

在 dataDecryption() 函数中调用 cipher.doFinal() 时抛出异常。此外,调用 SecureRandom 会收到以下警告:“Android 4.3 及更早版本上可能存在不安全的随机数。请阅读https://android-developers.blogspot.com/2013/08/some-securerandom-thoughts.html 了解更多信息。”

我正在使用 RandomAccessFile 和 FileOutputStream 读写文件,所以我直接使用字节数组。

我已经查看了另一个问题并按照它的说明修改了我的代码,但仍然无法正常工作:

Android 4.2 上的加密错误

顺便说一句,我在一个设备中加密并在另一个不同的设备中解密。

这是我的堆栈跟踪:

希望你能帮助我,在此先感谢。

0 投票
1 回答
578 浏览

pdfbox - 使用 PDFBox 解密时出现 BadPaddingException

过去,我曾尝试使用以下代码使用 PDFBox 解密 PDF:

(请注意,我不使用doc.decrypt(password),因为用于 decrypt() 的 Javadoc说应该使用openProtection(),尽管为什么它不被弃用超出了我的理解)。

无论如何,这已经运行了很长一段时间。但是,最近我似乎遇到了以下异常:

我该如何解决这个问题?

0 投票
2 回答
2448 浏览

java - 由于输入字符串,RSA 解密失败

我有以下问题。我的代码中有 2 个函数用于加密/解密简单字符串。

所以:

我必须将字符串“ someString ”传递给函数:

函数doEncryption("someString")返回“[B@61decc8c”

现在我必须将此字符串嵌入到 url 中,服务器端代码应该从那里获取它。

到目前为止一切都很好,但是当我调用该函数时

尖叫声,但doDecryption("[B@61decc8c")以下例外:

有什么办法可以解决这个问题吗?我必须在客户端和服务器端之间传递字符串,因为它们甚至可以在不同的域中。更不用说字符串实际上是从 .Net 逻辑生成并发送到 Java 服务器端的。对字符串的加密工作正常......我应该怎么做才能修复解密。

这是完整的课程代码:

}

0 投票
1 回答
3179 浏览

java - Java中的RSA BadPaddingException - 在Android中加密在JRE中解密

我发现了一些其他问题,但我没有找到解释是什么原因造成的。我在 Java 中编写了一个函数来加密数据,将其存储到文件中并再次解密它加载文件。由于它是一种非对称加密,我有一个公钥和一个私钥,它们直接存储在代码中用于测试目的。

问题似乎是加密本身的差异,因为该功能在 android 以及安装了 java RE 7 的 Windows 机器上工作。但是,在 JRE7 系统上使用相同的密钥和功能加密来自 Android 的数据是不可能的,结果是“bad padding exeption”。

出于测试目的,我只使用一个数据块。由于 en/decrypt 在每个系统中都有效,我确信问题不是关键。最终版本将对二进制数据进行编码和解码——所以我只使用字节,不必担心字符串中的不同字符集。在我了解原因后,我将使用 pureRSA 对 PHP 中的数据进行解码。

0 投票
1 回答
1528 浏览

java - AES 加密错误:javax.crypto.BadPaddingException

我收到以下代码错误:javax.crypto.BadPaddingException: Given final block not proper padded。我指出了程序中发生错误的位置。

主要类:

我是 AES 和加密的新手,这是一个家庭作业。感谢您的帮助!我很感激。