開始するには、メッセージを復号化するための秘密鍵が必要です。「公開鍵 (64 ビット エンコード)」によって、実際に持っているのは Base-64 でエンコードされた証明書であり、「----- BEGIN CERTIFICATE-----」というヘッダー行と、 「-----END CERTIFICATE-----」というフッター。
それが正しければ、秘密鍵を見つける必要があります。これは、拡張子が「.p12」または「.pfx」の PKCS #12 形式のファイルに保存されることがあります。秘密鍵がそのようなファイルに保存されている場合、秘密鍵にアクセスするにはパスワードが必要です。
または、OpenSSL やその他のユーティリティは、Base-64 でエンコードされた、またはバイナリの秘密鍵ファイルを使用します。これらにはさまざまな拡張子があり、パスワードで保護されている場合とされていない場合があります。あなたが持っているファイルに「-----BEGIN RSA PRIVATE KEY-----」または「-----BEGIN PRIVATE KEY-----」のヘッダー行がある場合、それは実際には秘密鍵です.
最後に、Windows は内部キー ストアに秘密キーを格納できます。
秘密鍵の場所を明確にしたら、質問を更新してください。
秘密鍵が Java 側で使用されている場合、デジタル署名を実行しようとしている可能性があります。私がテストしたいくつかの Java プロバイダーはすべて、この方法で (ab) 使用すると正しい結果を生成しますが、署名を行う場合は、Signature
クラスを使用する必要があります。C# コードでは、署名オブジェクトを使用して署名を "検証" する必要もあります。
暗号化は秘密鍵で行います。公開鍵は公開されているため、誰でもメッセージを復号化できます。つまり、メッセージは機密ではありません。公開鍵は、署名されたメッセージを検証するために受信者によって使用されます。