資源描述:
《窮舉破解excel、word文檔密碼》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、窮舉破解EXCEL、WORD文檔密碼摘要:本文討論了如何使用VB編程,通過窮舉法解除EXCEL文檔和WORD文檔的密碼。并在破解過程中加入了中斷,以方便用戶隨時中斷破解過程。oent=1BuddyControl=txtPassonDialogName=Dialog,DialogTitle=請選擇加密的Excel或e=Label1,Caption=破解進度:21LabelName=Label3,Caption=從:22LabelName=Label5,Caption=到:ArrayLen+2EndIfIfArrayLen=0The
2、nMsgBox"錯誤:沒有選擇'密碼使用的字符'",,"請選擇密碼使用的字符范圍..."ExitSubEndIfIfblnProcessingThenIfMsgBox("真的要中斷解密過程嗎?",vbYesNo,"用戶中斷任務")=vbYesThenblnProcessing=FalseElseCmdStartCrack.Caption="中斷破解"blnProcessing=Truestrpath=bo1.TextIfstrpath=""ThenMsgBox"錯誤:沒有選擇'需要解密的文件'",,"請選擇需要解密的文件..."
3、ExitSubEndIfstrpath=Trim(strpath)PasseNextIfUCase(Right(strpath,3))="XLS"ThenForK=Passp=IForJ=1ToK-1Temp=TempArrayLepass=all_char(TempModArrayLen)+passNextJpass=pass+all_char(IModArrayLen)SetOpenReturn=xls.e.Refreshxls.Visible=TrueCmdStartCrack.MousePointer=0CmdStar
4、tCrack.Caption="開始破解"blnProcessing=FalseSetxls=NothingExitSubEndIfDoEventsIfNotblnProcessingThenExitForNextIIfNotblnProcessingThenExitForNextKxls.QuitSetxls=NothingElseForK=Passp=IForJ=1ToK-Temp=TempArrayLenpass=all_char(TempModArrayLen)+passNextJpass=pass+all_char(
5、IModArrayLen)OpenReturn=ents.Open(FileName:=strpath,passent:=pass)Text1.Text=pass'顯示破解進度Text1.RefreshIfErr.Number<>0Then'如果解密成功,打開文檔,顯示密碼,退出過程Err.ClearElse'MsgBox"dStartCrack.MousePointer=0CmdStartCrack.Caption="開始破解"blnProcessing=FalseSetdStartCrack.Caption="開
6、始破解"IfblnProcessingThenMsgBox"沒有找到密碼,可能是密碼位數不對!",,"提示信息..."blnProcessing=FalseEndSub3.時間復雜度分析一個算法的時間復雜度,是指該算法的時間耗費,是該算法所求解問題規(guī)模n的函數。根據前面講的實現原理,我們知道,破解算法的時間耗費主要集中在嘗試打開OFFICE文檔上,因此,當我們假設破解一個N位字符串密碼,且選定密碼字符范圍的總字符數為ArrayLen時,該算法的時間復雜度是O(ArrayLen)。即,當N確定后,該算法的時間復雜度是N次方階;當
7、ArrayLen確定后,該算法的時間復雜度是指數階。都是高數量級的時間復雜度。4.說明窮舉法解密對系統(tǒng)資源的占用是十分驚人的,在解密的過程中最好不要運行其他應用程序。如果安裝有瑞星等殺毒軟件,應將殺毒軟件的“office安全助手”去掉,以便加快程序的運行速度。該程序在WinXP+OfficeXP+VB6.0環(huán)境下測試通過,筆者隨便測試了一個5位數字密碼,在P4機器上,8分鐘左右即可解開口令。