2017-05-28 47 views
0

私は秘密鍵と公開鍵が別々のファイルにあります。秘密鍵エラーのパラメータが正しくありません

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); 

rsa.FromXmlString(PrivateKey); 

が、コードが2行目に達したとき、私はこのエラーを取得:命令で

は、このコードを使用すると言う「System.Security.Cryptography.CryptographicException」タイプの

未処理の例外が発生しましたin mscorlib.dll

追加情報:パラメータが間違っています。

何が問題ですか?私たちは鍵を持っている会社からのサンプルコードで

、それはサンプルpeivateと、このような公開鍵を使用しています。

<RSAKeyValue><Modulus>KEY VALUE</Modulus><Exponent>AQAB</Exponent></RSAKeyValue> 

私が先頭に<RSAKeyValue><Modulus>に参加し、</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>

にもかかわらず終わり、ノーティフィケーション

+0

秘密鍵の例を表示できますか? –

答えて

0

私はXMLに純粋な文字列から、私のキーを変換するために、このサイトを使用:

https://superdry.apphb.com/tools/online-rsa-key-converter

.NETは、XML形式のキーたいので は

+0

これはあなたの問題を解決した答えですか? @ArtjomB。 –

+0

はい、私はC#でコードをxmlに変換し、その逆は上記のようにします。 –

+0

あなたの答えにリンクしているサイトには完全なコードが含まれています。そのページを下にスクロールすると、要点へのリンクがあります。 –

-1

すべてのキーストリングが有効なキーバイトであるとは限りません。問題はそれにあるかもしれない。怒鳴るコードを使用して鍵を生成してみて、問題がロジックまたはキー文字列であるかどうかを確認するためにあなたのコードでそれを使用します。

var rsa1 = new RSACryptoServiceProvider([number of bits of code]); 
Console.WriteLine(rsa1.ToXmlString(true)); 
+0

答えはありませんか? –

+0

このニュースはありませんか? – Emad

+0

私が検索して.NETで理解しているのは、私有鍵と公開鍵をxmlに変換すべきですが、変換のプロセスが何であるのか分かりません。 –

0

最も可能性の高い原因は、あなたの秘密鍵がD、P、Q、DP、DQ、InverseQ値のすべてを持っていないということです。

次に、byte []形式のDがModulus(byte []形式)と同じ長さではないことが考えられます。その同じ静脈では、P/Q/DP/DQ/InverseQはすべてModulusの長さの半分(丸め)としてbyte []形式を持つ必要があります。

これは、XML形式では該当しない特定のキーがあります。最も信頼できる方法は、自分でRSAParameters構造を構築し、ImportParametersを呼び出すことです。 1つの理由:XMLメソッドは.NET Coreではまったく使用できませんが、ImportParametersは使用できません。