问题标签 [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 回答
9429 浏览

java - 使用相同密钥解密 AES 时出现 BadPaddingException

这是测试仪:

由于最后一个断言而失败:

尝试执行时:

给出这个堆栈跟踪:

这些是我的功能:

如果检查键是否相同的断言有效,为什么会出现该异常?

0 投票
2 回答
1561 浏览

java - AES 文件解密“给定的最终块未正确填充”

我想加密然后解密文件使用AES。我已经阅读了很多关于 error 的主题"Given final block not properly padded"。但我没有找到适合我的解决方案。

很抱歉指定我的代码的语言,我不知道写语言 java

这是我的代码:

变量

创建密钥

方法加密

方法解密

更新

解决方案:编辑大小为buffer16 的倍数。使用 CipherInput/Output 读取/写入文件。

TksArtjom B.

0 投票
0 回答
300 浏览

java - 解密期间出现“javax.crypto.BadPaddingException:pad block损坏”异常

我正在开发一个现有的应用程序,但尚未编写它。

在此方法中解密用户名和密码期间,我得到了这个异常(javax.crypto.BadPaddingException:pad block损坏):

encrypted 的值是一个字节数组,其中包含 -89 到 126 之间的 16 个数值。任何人都可以看到这段代码的问题吗?这是所有重要的代码:

在 Settings 类(Encryptor 类的客户端)内部:

完整的加密器类:

这个答案建议不要使用 SecureRandom 来生成密钥。我正在处理的应用程序中的代码确实为此使用了 SecureRandom。我该如何解决?

这是使用 SecureRandom 的代码。

0 投票
1 回答
623 浏览

java - 在 Android 中使用分块解密时最后丢失字节

首先,我在 Java/Android 中创建了一个小的加密/解密程序。这没什么特别的,只是非常基本,所以没有缓冲区或任何东西。在那里使用了 Iv 和 Salt 我在文件开头写了 salt 和 iv (24 bytes) 。第一个版本能够加密/解密一个文件,并且两个文件最终的二进制文件相同。

现在我尝试不一次读取和处理整个文件,而是使用缓冲区(大小为 1024 字节)分步进行。我将我的更改cipher.doFinal为多个 cipher.update,cipher.doFinal最后一个为空。

加密:

解密:

所以,现在的问题是,当我运行它并最后比较文件时,
1. 我在解密时在 doFinal 上得到了 BadPaddingExeption。和
2. 被加密和解密的文件在文件末尾缺少 29 个字节。

不用担心,IV 和盐通常是随机的,只是静态测试。

此外,丢失的字节取决于文件大小。刚刚尝试了另一个文件,它缺少 21 个字节。

0 投票
0 回答
420 浏览

java - Java 签名 pdf keystore.load 抛出 javax.crypto.BadPaddingException

我使用在此页面上找到的以下代码使用 *.p12 文件对 PDF 进行签名。

该代码在我的计算机上运行良好。但是如果我用 eclipse 创建一个 .war 文件并将其部署在服务器上,服务器会抛出 javax.crypto.BadPaddingException:

我在其他线程中找到的所有信息都表明我用来加载 KeyStore 的密码是错误的,但我确信它没有错。

有什么想法吗?非常感谢!

0 投票
1 回答
859 浏览

java - java 7中的填充异常:引起:javax.crypto.BadPaddingException:给定最终块未正确填充

嗨,我正在使用 tripedes 键从输入流中读取并写入输出流。在 java7/8 中获取此执行:由:javax.crypto.BadPaddingException:给定最终块未正确填充

谁能告诉我 cipher.doFinal 中可能有什么错误?

更新,从评论中复制的加密代码:

0 投票
2 回答
253 浏览

java - BadPaddingException 和一些文件卡在 99%

我试图从这里收集有关加密/解密的所有可能信息。修补它,一些成功和失败。
但是现在我已经应用了代码以及它的成功和失败。一些文件(exe 或 msi)正在运行,但它们仍然给出有关 BadPaddingException 的错误。此外,其他一些媒体文件,如(mp4、mkv 等),尽管已完全接收,但仍停留在 99% 并且没有超出此范围(只是一些微小的字节差异,但磁盘上的大小始终匹配)。

我只是想要一些帮助来摆脱这两个问题。文件 r 通过套接字编程从一台 PC 传输到另一台 PC。
服务器:(已编辑)


客户:


如果完全接收到加密数据

任何输入都受到高度赞赏。谢谢你。

编辑 1:添加了通过流接收的加密和解密文件大小的链接。Dropbox Link

Edit 2:所以最后在三位参与帮助我的成员的帮助下,问题得到了解决。我正在审查我的问题的其他解决方案,我遇到了这个解决方案,它帮助我深入思考后台发生的实际情况。感谢Artjom B.的推荐解决方案以及@zaph 和 @jtahlborn清除了我关于填充和输入/输出流的错误假设。

0 投票
2 回答
15215 浏览

java - javax.crypto.BadPaddingException:给定最终块未正确填充...尝试使用 getbytes("UTF")

我已经尝试添加 getbytes("UTF") 或 getbytes("UTF-8"),因为它是在类似问题中提出的。它说我们需要在将字节转换为字符串时尝试 UTF,反之亦然。但它仍然不适用于我的代码......请帮助

0 投票
1 回答
347 浏览

java - 无法克服 javax.crypto.BadPaddingException

我正在编写一个加密图像中的文本的隐写术系统 - 我决定在将文本嵌入图片之前也要对其进行加密。隐写算法适用于字符串输入/输出。

由于我的心血来潮,我一直在尝试使用 DES 和 AES 算法,但遇到了上面的异常。我将展示例如 AES 算法的加密/解密方法:

这是调用(加密方面):

这是调用(解密方面)-例外

哪里有问题?

密钥是相似的,字节数组也是相似的(我通过打印序列来检查它) - 但我被告知我不能使用getBytes()以便从字符串转换为byteArray我打算使用AES/DES解密算法的时间。

0 投票
0 回答
14588 浏览

android - android 6.0 javax.crypto.BadPaddingException:错误:1e000065:密码函数:OPENSSL_internal:BAD_DECRYPT

此代码在 android 6.0 之前运行良好,但如果加密文件大小小于约 1k 字节,则在 6.0 上会出错。

错误信息: