我正在創建一個程序,用於幫助我的客戶恢復放置在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分鐘以上的時間,其他「專業」程序花費了幾秒鐘的時間。任何反饋將不勝感激!
您正在創建一個程序來幫助您的客戶暴露潛在的私人數據嗎? – 2012-08-14 18:40:40
我的猜測是專有系統將他們的方法建立在使用密碼存儲方法/加密算法的一些知識的基礎上,而你正在使用 - 不可避免的慢得多的蠻力方法。 – 2012-08-14 18:41:02
您正在使用非常高的抽象(從Exel interop,將IO,異常文件)進行數字運算。這是錯誤的方法。 – Gleno 2012-08-14 18:41:26