您可以告诉我为何在解密RSA私钥加密消息时发生此错误.
我正在验证由Java签名的消息的签名,并使用openssl 0.9.8g验证签名
小智 6
这通常意味着加密方和解密方使用不同的填充方案。它们两侧必须相同。
如果您在 Java 中使用 Bouncy Castle,则可以在密码中指定填充方案(在本例中为 PKCS #1 填充),如下所示:
Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding", "BC");
Run Code Online (Sandbox Code Playgroud)
在openssl中,您可以在加密/解密命令中指定填充方案:
openssl rsautl -pkcs -decrypt ...
Run Code Online (Sandbox Code Playgroud)
这里,选项“-pkcs”指定 PKCS #1 填充方案。
希望这可以帮助。