1

私は2つの本当に単純なdllを作成したいと思います:

1)xmlドキュメントに署名します2)xmlドキュメントが変更されていないことを確認します。

RSACryptoServiceProviderとキーコンテナを使用してみました。しかし、別のマシンに移動すると、キーがマシンに保存されているため、これは機能しません。

作成中のdllにキーを保存したいのですが(これはお勧めできません)、xmlドキュメントに署名するだけのコードを記述して、変更されていないことを確認する方法がわかりません。

それで、私が望むことをするために対称鍵を使用する必要がありますか?これは可能ですか?

ピート

4

2 に答える 2

9

秘密鍵を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(/*...*/);
于 2011-01-18T16:36:56.273 に答える
1

xml ドキュメントが変更されていないことを確認するだけの場合は、単純なMD5 チェックサム(またはその他の適切なハッシュ アルゴリズム) を実装する方が簡単で、必要なものです。異なるマシンでも検証可能です。

于 2011-01-17T18:43:05.333 に答える