私はこのためにRSACryptoServiceProviderRSACryptoServiceProvider公開/秘密鍵のインポート
を経由してデータに署名し、確認したい、私は公開鍵と秘密鍵を必要とします。
私のプロジェクトでは、MyPublicとPrivateキーをXMLファイルに保存します。
ある時は、私がMyPublicとプライベートキーの上で
public bool SignutureCheckForVerify(string myData, byte[] SignedData)
{
...
RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();
RSAalg.FromXmlString(MyPublicKey());
return RSAalg.VerifyData(Encoding.ASCII.GetBytes(myData), new MineCryptoService(), SignedData);
...
}
private static string MyPublicKey()
{
return "<RSAKeyValue><Modulus>-----Pubic Key Here ----</RSAKeyValue>";
}
を生成し、私は
を「データを介して公開鍵を確認し、」マイSignData方法が類似していることを示しました。そこで
、
RSAalg.FromXmlString(GetPrivateKey());
...
RSAalg.SignData(...)
私の質問のSIいます。いくつかの例では、私はそれを認識しました。公開鍵と秘密鍵は、crt/pem/certなどの証明書ファイルを使用してインポートします。そこに私はXMLファイルを保存しました。
©私のソリューションは間違っていますか?
Iキー
https://msdn.microsoft.com/en-us/library/tswxhw92(v=vs.110).aspx
GetKeyFromContainer( "MyKeyContainer")をインポートするためにこの方法を使用する場合
、ことを2番目の質問。
IS MyKeyContainerプライベートキーと公開キーは静的ですか?各実行時
は、私は別のキーセットを持っている同じ秘密鍵/公開鍵
または各ランニングを持つことができますか? テキストを強調
あなたの答えはたくさんあります。キーを格納するXMLファイルにはどうしたらいいですか?また、XMLのStoregeと証明書ファイルのStoregeの違いは何ですか?手伝って頂けますか? –
XMLは、Microsoft独自のストレージとして使用されます。証明書に公開鍵を格納すると、証明書に追加データを格納することができます。証明書は、秘密鍵で「自己署名」することも、PKIを作成できる認証局(PGPの場合は「誰でも」)が署名することもできます。主題「鍵管理」は巨大であることに注意してください。 StackOverflowを超えて、すべてのオプションと特定の選択肢の意味を議論します。 –
@MaartenBodewes RSACryptoServiceProviderはアルゴリズムとして引数を必要としますが、SHA-1のデフォルトはどういう意味ですか? (これはOAEPのSHA-1のみをサポートしますが、それは署名ではなく暗号化です)。 – bartonjs