我正在创建一个程序,用于帮助我的客户恢复放置在 Word 和 Excel 等办公文档中的密码。该程序运行良好,但比您可以免费下载的类似产品慢得多。我想使用我自己的程序,因为我觉得你免费下载的很多程序并不完全安全,并且缺少一些我想要的控件。
更重要的是......我需要帮助弄清楚为什么我的程序这么慢。我用一个简单的 3 个字母密码“TFX”创建了一个 Excel 文档。我下载的程序找到密码的速度几乎与单击“开始”后松开鼠标按钮的速度一样快。我的程序需要 10 分钟。这是 3 个字符的循环:
private string ThreeCharPass(string file, Microsoft.Office.Interop.Excel.Application exApp, char[] combarr)
{
for (int three = 0; three < combarr.Length; three++)
{
for (int two = 0; two < combarr.Length; two++)
{
for (int one = 0; one < combarr.Length; one++)
{
try
{
string pass = combarr[three].ToString() + combarr[two].ToString() + combarr[one].ToString();
exApp.Workbooks.Open(file, false, true, Type.Missing, pass, Type.Missing, true, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
return pass;
}
catch
{
}
}
}
}
return string.Empty;
}
数组“combarr”是一个字符数组,包含密码中所有可能的字符。它是根据用户选择的选项在程序的早期生成的。我认为问题必须出在我循环数组以创建密码组合的方式上,因为仅在这种 3 个字符的密码方法中,它花费超过 5 分钟,而其他“专业”程序花费几秒钟。任何反馈将不胜感激!!