私は、顧客が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分以上かかるため、問題は配列をループしてパスワードの組み合わせを作成する方法にある必要があると考えています。フィードバックをいただければ幸いです!!