2

我正在尝试使用 Bouncy Castle 进行一些 RSA 加密/解密。虽然一切正常,但我的解密功能中的输出已损坏。我认为这是由于调用算法时缺少适当的填充。

我已经安装了 Bouncy Castle,方法是将它 (bcprov-jdk15on-147.jar) 添加到我的类路径中,并将其安装在我的构造函数中,如下所示:

Security.addProvider( new BouncyCastleProvider() );

为了验证提供程序是否已安装,我调用了:

if (Security.getProvider( "BC" ) != null)
{
      System.out.println( "Bouncy Castle provider is available" );
}

哪个按预期工作。

当我得到我的密码时,当我尝试使用算法“RSA”时,我得到了密文和损坏的明文。我知道我需要使用带有填充的算法,例如 PKCS 或其他算法,但以下获取密码的尝试因 NoSuchAlgorithm 异常而失败:

Cipher rsaCipher = Cipher.getInstance("RSA/NONE/PKCS1Padding", "BC");

不管我尝试什么其他方法,我能得到密码的唯一方法是如果我打电话:

Cipher rsaCipher = Cipher.getInstance("RSA", "BC");

为什么 PKCS 密码不可用?我已经安装了无限制的管辖权政策,正如我所说,普通的“RSA”有效,但填充调用没有。此外,我试图列出提供程序中的 Bouncy Castle 键,它看起来像是一个非常详尽的列表。

谁能帮我弄清楚为什么会丢失?

谢谢!埃文

4

0 回答 0