错误:RSA_padding_check_PKCS1_type_1:块类型不是01 ..?

Bal*_*gan 6 openssl rsa

您可以告诉我为何在解密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 填充方案。

希望这可以帮助。