导入RSACryptoServiceProvider而不持久化

时间:2014-01-02 14:25:41

标签: c# .net security cryptography rsacryptoserviceprovider

根据this answer - 每次创建RSACryptoServiceProvider时,除非明确告知不要,否则它会被保留。

ImportCspBlob怎么样?我有一个私钥作为byte [],所以我使用:

using (var rsa = new RSACryptoServiceProvider())
{
    rsa.ImportCspBlob(keyBlob);
    //rsa.PersistKeyInCsp = false; //Should I add this? Perhaps before the CSP import?
    //Use rsa ...
}

我需要PersistKeyInCsp = false;吗?是否为时已晚,因为它已经存在?但是在导入之前使用它 - 它会影响之前的 blob吗?

1 个答案:

答案 0 :(得分:0)

将PersistKeyInCsp设置为false甚至会删除现有的持久密钥,因此它完全符合您的希望,但只要您的CspParameters不指定容器名称(在这种情况下,您就是&#39) ;使用无参数构造函数,所以你没有指定容器名称),我不相信它会持续存在而不管PersistKeyInCsp的值。