3

Java アプリケーションと互換性のある C# アプリケーションを作成する必要があります。

Java アプリケーションは、Cipher.getInstance("RSA/ECB/nopadding");イニシャライザを使用して暗号 ECB とパディングなしを作成します。

ただし、C# では、パディングに OAEP パディングまたは PKCS#1 v1.5 パディングの 2 つのオプションがあります。パディングなしのバージョンが必要です。そうしないと、プロジェクトに行き詰まってしまいます。

C#.NET RSACryptoServiceProvider でパディングなしのスキームを使用する方法はないと思います。ただし、この精度を可能にする RSA カスタム クラスまたはライブラリはありますか?

PS: C#.NET の RSACryptoServiceProvider ECB はデフォルトですか? これに関するドキュメントが見つかりません。

4

3 に答える 3

3

OpenSSL.NET を使用すると、パディングなしが利用可能になります。ただし、機能させることはできません(機能させるのを手伝いたい場合は、この質問を参照してください

于 2009-09-08T22:10:31.113 に答える
1

パディングなしで RSA を実行すると、ほぼ確実に壊れた (安全でない) 暗号システムが残ります。C# でそれができない場合、それは C# に有利な点です。Java 側を修正します。

于 2009-09-08T02:31:11.673 に答える
0

実際のところ、パディングがない場合は、ブロック サイズを正確に満たさなければなりません。もちろん、通常はブロックサイズに正確に到達するのは非常に奇妙であるため、パディングします。

いつでも自分でパディングして、反対側で削除するいくつかの文字を使用できます。

正確には、これを行う必要がある理由は何ですか?

于 2009-09-08T02:22:00.940 に答える