Java到Python RSA

2024-05-17 00:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

M2Crypto lib(据我所知)只提供了以下填充方案: 无填充=3 pkcs1_padding=1 sslv23_填充=2 pkcs1_oaep_padding=4个

而bouncy castle J2ME仅提供: 不添加 OAEPWITH和PADDING PKCS5添加 SSL3填充

因此,我可以在两者之间使用NoPadding,但是解密后生成的字符串将填充混乱的字符。在

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

请帮我弄清楚,我快死了!在


Tags: 字符串客户端lib方案javacastlepaddingm2crypto
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引擎。在

我不熟悉Bouncy Castle,但我想您可能会使用实现^{}^{},因此您应该能够使用^{}?在

而且似乎还有^{}支持,如果给出了正确的参数,也应该可以工作。在

相关问题 更多 >