我忘记了.pfx x509证书的密码,所以我决定尝试强制它。所以我去测试并编写了以下代码:
for (var i = 0; i < 1000; i++)
{
try
{
var cert = new X509Certificate2("D:/file.pfx", i.ToString(), X509KeyStorageFlags.MachineKeySet);
Console.WriteLine("Found it: " + i);
}catch
{
}
}
我知道它远非最佳,但这不是我的问题所在。它有点慢,所以我想,我可以使用rawData重载而不是给它路径名。所以我做了以下代码:
for (var i = 0; i < 1000; i++)
{
try
{
cert = new X509Certificate2(buffer, i.ToString(), X509KeyStorageFlags.MachineKeySet);
Console.WriteLine("Found it: " + i);
}catch
{}
}
buffer
是byte[]
的位置;在循环之外,我只是使用BinaryReader
从文件中加载原始数据。
只有这个代码慢了3倍。那是为什么?
编辑:我现在已经运行了100次这样的代码,所以这不仅仅是一个随机的巧合。
答案 0 :(得分:0)
也许磁盘缓存是不受管理的,因此更快?