问题标签 [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.
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也会崩溃?
谢谢盖伊·胡达拉
java - javax.crypto.BadPaddingException:消息大于模数
我正在做一个项目,我需要在 RMI 网络上显示一些加密解密。我为此使用 RSA 系统。在解密时,我的代码给了我以下错误:
这是我的解密代码:
我尝试在加密时使用 cipher.update(byte[] data) 。我有字符串数据,我在加密时使用 string.getByte() 将其转换为字节数组。如果我使用更新方法,它会给我一个 IllegalBlockException 错误,即数据不能大于模数。
请帮我解决这个问题。我无法在我的代码中找到错误。
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() 方法?)以使其工作吗?
@对于那些好奇的人-方法必须是静态的,因为这是更大的一部分;)
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
反之亦然。
我创建了一个独立的类来测试这段代码并且没有任何问题。
关于如何解决这个问题的任何想法?
java - 为什么我会从 RSA 解密中得到 BadPaddingException?
我使用 RSA 算法进行加密和解密。当我加密一个字符串时,它工作正常。当我解密时,我得到一个错误。下面,我发布我的代码。
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 读写文件,所以我直接使用字节数组。
我已经查看了另一个问题并按照它的说明修改了我的代码,但仍然无法正常工作:
顺便说一句,我在一个设备中加密并在另一个不同的设备中解密。
这是我的堆栈跟踪:
希望你能帮助我,在此先感谢。
pdfbox - 使用 PDFBox 解密时出现 BadPaddingException
过去,我曾尝试使用以下代码使用 PDFBox 解密 PDF:
(请注意,我不使用doc.decrypt(password)
,因为用于 decrypt() 的 Javadoc说应该使用openProtection(),尽管为什么它不被弃用超出了我的理解)。
无论如何,这已经运行了很长一段时间。但是,最近我似乎遇到了以下异常:
我该如何解决这个问题?
java - 由于输入字符串,RSA 解密失败
我有以下问题。我的代码中有 2 个函数用于加密/解密简单字符串。
所以:
我必须将字符串“ someString ”传递给函数:
函数doEncryption("someString")
返回“[B@61decc8c”
现在我必须将此字符串嵌入到 url 中,服务器端代码应该从那里获取它。
到目前为止一切都很好,但是当我调用该函数时
尖叫声,但doDecryption("[B@61decc8c")
以下例外:
有什么办法可以解决这个问题吗?我必须在客户端和服务器端之间传递字符串,因为它们甚至可以在不同的域中。更不用说字符串实际上是从 .Net 逻辑生成并发送到 Java 服务器端的。对字符串的加密工作正常......我应该怎么做才能修复解密。
这是完整的课程代码:
}
java - Java中的RSA BadPaddingException - 在Android中加密在JRE中解密
我发现了一些其他问题,但我没有找到解释是什么原因造成的。我在 Java 中编写了一个函数来加密数据,将其存储到文件中并再次解密它加载文件。由于它是一种非对称加密,我有一个公钥和一个私钥,它们直接存储在代码中用于测试目的。
问题似乎是加密本身的差异,因为该功能在 android 以及安装了 java RE 7 的 Windows 机器上工作。但是,在 JRE7 系统上使用相同的密钥和功能加密来自 Android 的数据是不可能的,结果是“bad padding exeption”。
出于测试目的,我只使用一个数据块。由于 en/decrypt 在每个系统中都有效,我确信问题不是关键。最终版本将对二进制数据进行编码和解码——所以我只使用字节,不必担心字符串中的不同字符集。在我了解原因后,我将使用 pureRSA 对 PHP 中的数据进行解码。
java - AES 加密错误:javax.crypto.BadPaddingException
我收到以下代码错误:javax.crypto.BadPaddingException: Given final block not proper padded。我指出了程序中发生错误的位置。
主要类:
我是 AES 和加密的新手,这是一个家庭作业。感谢您的帮助!我很感激。