4

ここの別の記事で、このようなコードを使用すると、.NET が作成されたマシンからランダムなキー ストア (おそらくレジストリ内) にキーを永続化することになると読みました。これは本当で、どのような条件下で持続するのか、持続しないのか? キーが文字列から初期化された場合、永続性は引き続き発生しますか?

RSACryptoServiceProvider alg = new RSACryptoServiceProvider();

それは本当のように見えますか?

http://blogs.msdn.com/b/winsdk/archive/2010/01/29/while-creating-cryptographic-keys-or-key-containers-repeatedly-your-hard-disk-may-get-filled- with-lots-of-files-and-may-end-filling-the-hard-disk-space-if-not-deleted.aspx

---- 今はよくわかりません..自分のマシンでデバッグすると、PersistInCspContainer が false に設定されます。

4

1 に答える 1

2

混乱は仕様のこの部分にあると思います:

オブジェクトでキー コンテナー名を指定し、それを使用して RSACryptoServiceProvider オブジェクトを初期化すると、プロパティPersistKeyInCspは自動的に true に設定されます。CspParametersフィールドを使用してコンテナ名を指定できますKeyContainerName。オブジェクトをオブジェクトでPersistKeyInCsp初期化せずにプロパティを true に設定する と 、先頭に が付加されたランダムなキー コンテナー名が作成されます。RSACryptoServiceProviderCspParameters"CLR"

キーを永続化するには、CspParametersまたはtrueに設定する必要があるようです。PersistKeyInCsp少なくとも、それが私が読んだ方法であり、あなたの実験は一致しているようです.

おそらく PKCS#11 トークンに似ています。キーはデフォルトでセッション オブジェクトです。

于 2013-01-28T21:59:14.680 に答える