2017-07-06 10 views
0

私はRSA公開鍵をBase64でエンコードしています。 私はRSA公開鍵を取得することができデコードした後のように:RSAParametersで公開鍵を設定する方法

-----は、公開鍵をBEGIN ----- XXXXXXXXXXXXXXXXXXXXXXX ----- END PUBLIC KEY -----

このキーをRSACryptoServiceProviderにインポートする必要があります。 私は解決策を探していましたが、何かを見つけることができませんでした。私が見つけたの作品から は、私はそのようなコードサンプル

public static string Encrypt(string input, string base64PublicKey) 
    { 
     var rsa = new RSACryptoServiceProvider(); 
     var byteKey = System.Convert.FromBase64String(base64PublicKey); 
     var byteInput = Encoding.UTF8.GetBytes(input); 

     var parameters = rsa.ExportParameters(false); 
     parameters.Modulus = byteKey; 

     rsa.ImportParameters(parameters); 

     var bytesEncrypted = rsa.Encrypt(byteInput, false); 

     var result = System.Convert.ToBase64String(bytesEncrypted); 

     return result; 
    } 

私はいつも、私はとの統合だシステムからのエラーで応答を得るためには、正常に動作していないと仮定を作成しました。

公開鍵をインポートする正しい方法はありますか? どうすればいいですか?

答えて

1

あなたが持っている公開鍵はおそらくPKCS#1形式でエンコードされています。これはRSA公開鍵の一般的な標準規格です。

.NET暗号クラスは、直接この形式を理解していない、あなたの鍵から係数公開指数を取得し、oufあなたRSAParametersを、対応するパラメータを設定するために自分自身をコードするASN.1を解析する必要がありますオブジェクトです。

関連する問題