1. 程式人生 > >如何用Python寫一個暴力破解加密壓縮包的程式

如何用Python寫一個暴力破解加密壓縮包的程式

有些時候加密rar軟體經常會忘了密碼,但記得密碼的大概,於是乎用Python寫個程式來暴力破解吧:

首先要搞清楚如何用命令列來解壓縮,經研究,rar軟體解壓是用的unrar.exe,將這個程式拷貝到C:\windows,然後進入加密軟體包所在的資料夾,用命令列執行 下面的命令:

unrar.exe e -pabcd 123.rar

程式就是先前拷到C:\windows,然後引數e是指相對路徑,如果在是本資料夾下執行這個命令,則只打檔名就可以了,輸入密碼的方式是-p後面的欄位,假定是abcd,最後面的是要解壓的檔名。

下面我們解決如何用Python來執行windows下的命令列

import subprocess

command = 'unrar.exe e -n -pabcd 123.rar'
subprocess.call(command)

這樣也可以完成解壓,既然這樣,那就開幹吧,寫一個暴力迴圈,我以4位字母為例,字母加的不全,實際使用可以視情況新增

list1=['a','b','c','d']
list2=['a','b','c','d']
list3=['a','b','c','d']
list4=['a','b','c','d']


for i1 in range(0,len(list1),1):
    for i2 in range(0,len(list2),1):
        for i3 in range(0, len(list3), 1):
            for i4 in range(0, len(list4), 1):
                password=list1[i1]+list2[i2]+list3[i3]+list4[i4]
                print(password)
                command = 'unrar.exe e -n -p' + password + ' 123.rar'
                child = subprocess.call(command)
                if child == 0:
                    print('解壓密碼是:',password)
                    break

child是返回值,為0表示解壓成功,可以挑出迴圈並列印密碼了,我實測,4位純數字或者字母,只需要十多秒就出來了,非常簡單