您好可以告诉我解密RSA私钥加密消息时出现此错误的原因。
我正在验证Java签名的消息签名并使用openssl 0.9.8g验证签名
答案 0 :(得分:3)
这通常意味着加密端和解密端使用不同的填充方案。他们需要在双方都是一样的。
如果在Java中使用Bouncy Castle,则可以在密码中指定填充方案(在本例中为PKCS#1填充),如下所示:
Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding", "BC");
在openssl中,您可以在encrypt / decrypt命令中指定填充方案:
openssl rsautl -pkcs -decrypt ...
此处,选项“-pkcs”指定PKCS#1填充方案。
希望这有帮助。