状況
Java で RSA 暗号化を使用しています。Cyanogenmod の Android 2.2 を搭載した HTC Saphire (32B) 開発者向け携帯電話でデータを暗号化し、Mandriva Linux 2010 を実行している 64 ビット サーバーでそのデータを復号化しようとしています。両方のマシンで同じ公開鍵と秘密鍵のペアを使用しています。 、Androidフォンでデータを正しく暗号化/復号化でき、Linuxサーバーでデータを正しく暗号化/復号化できますが、電話でデータを暗号化してからサーバーで復号化できません. パディングの例外が発生します。データが電話から正しく送信され、サーバーによって正しく解析されていることを確認しました。そのため、復号化が失敗する理由がわかりません。誰でもこれで私を助けることができますか?おそらく、Java の RSA アルゴリズムには、単語のサイズに関するいくつかの基本的な仮定がありますか?
さらに詳しい情報:
- 私の暗号化/復号化ライブラリは、こちらのガイドに基づいています。
- 私の暗号化キーの長さは 2048 ビットですが、異なるキー サイズでも同様の動作が見られます。
- RSA 暗号化/復号化コードを jar ファイルにパッケージ化しました。これは、サーバーのマシンで Eclipse を介してコンパイルされました。
- Android フォンの暗号化ライブラリを使用するプログラムは、上記のライブラリを使用します。これも Eclipse を使用してビルドされました。
- サーバー プログラムは、Netbeans を使用して作成されました (当時は Netbeans の方が簡単だったからです)。
その他の質問
- Java で利用できる他の無料の公開鍵暗号化アルゴリズム/ライブラリはありますか? それらはクロスプラットフォームで動作しますか? それらにどのようなパフォーマンスが期待できますか? などなど。私はこれを調べましたが、あまり見つかりませんでした。おそらく私は間違ったキーワードで探しています。
ふぅ!それだけだと思います。事前にご協力いただきありがとうございます。