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

私はバウンシーキャッスルに詳しくありませんが、どういうわけか使用RSAEngineしていると思いますAsymmetricBlockCipherが、使用できるPKCS1かどうかは?

OAEPまた、正しいパラメータが与えられれば、サポートもあると思われます。

于 2009-11-24T10:07:55.287 に答える