keycontainernameを使用せずにXMLドキュメントに署名することは可能ですか?
-
12-10-2019 - |
質問
2つの本当にシンプルなdllを作成したい:
1)XMLドキュメントに署名します2)XMLドキュメントが変更されていないことを確認します。
rsacryptoserviceproviderとキーコンテナを使用してみました。しかし、私が別のマシンに移動したとき、これはマシンにキーが保存されているため、機能しません。
キーをDLLS IMの作成に保存したい(これは再承認されていないことはわかっている)が、XMLドキュメントに署名して変更されていないことを確認するためのコードを作成する方法を説明することはできない。
それで、私が望むことをするために対称キーを使用する必要がありますか?
ピート
解決
DLLに秘密鍵を保存する際の問題についてすでに言及しているので、私はそれを繰り返しません。
これを行う:
あなた自身のマシンでこのコードを実行します:
var key = new RSACryptoServiceProvider(2048);
string publicKey = key.ToXmlString(false);
string privateKey = key.ToXmlString(true);
Console.WriteLine(publicKey);
Console.WriteLine(privateKey);
これにより、2つの(長い)行が出力されます。それらをコードにコピーします:
サイン:
var privateKey = new RSACryptoServiceProvider();
privateKey.FromXmlString(/* insert the private-key XML string here */ );
privateKey.SignData(/*...*/);
確認:
var publicKey = new RSACryptoServiceProvider();
publicKey.FromXmlString(/* insert the public-key XML string here */ );
publicKey.VerifyData(/*...*/);
他のヒント
XMLドキュメントが単純に変更されていないことを確認しようとしている場合 MD5チェックサム (または他の優れたハッシュアルゴリズム)は、実装が簡単で、必要なものです。また、さまざまなマシンで検証できます。
所属していません StackOverflow