3

我正在尝试使用客户端上的库 Bouncy Castle J2ME 和另一方面的 Python M2Crypto 将字符串从 Java 加密到 Python。

一切都很好,我可以正确解密,但填充是问题。

M2Crypto lib(据我所知)只给了我这些填充方案: no_padding = 3 pkcs1_padding = 1 sslv23_padding = 2 pkcs1_oaep_padding = 4

而充气城堡 J2ME 只提供: NoPadding OAEPWithAndPadding PKCS5Padding SSL3Padding

所以,我可以在两者之间使用 NoPadding,但是解密后生成的字符串会充满混乱的字符。

我真的很想整理填充,但我不知道如何在填充方案之间进行转换/如果可能的话。

请帮我解决这个问题,它正在杀死我!

4

2 回答 2

2

充气城堡提供填充物。例如,如果您想使用 PKCS1 填充制作 RSA,您必须这样做:

public static PKCS1Encoding create_rsa_public(RSAKeyParameters PublicKey){
    RSAEngine engine=new RSAEngine();
    PKCS1Encoding encrypto=new PKCS1Encoding(engine);
    encrypto.init(true,PublicKey);
    return encrypto;
}

该函数将返回一个带有 PKCS1Encoding 的 RSA 引擎。

于 2011-01-21T18:09:25.407 回答
1

我对 Bouncy Castle 不熟悉,但我猜你以某种方式使用RSAEngine了哪些工具,AsymmetricBlockCipher因此你应该能够使用PKCS1还是不使用?

并且似乎也有OAEP支持,给定正确的参数也应该有效。

于 2009-11-24T10:07:55.287 回答