這個也就是提供一個思路,需求是這樣的,我XX的閨蜜有個rar的壓縮包,不知道他是從哪里掙來的,說這個對他比較重要,但是有密碼打不開,唉,可憐了我的電腦了
因為這個是暴力破解,是把所有的密碼進行的遍歷,也就是從1到。。。。無窮的列舉出來,然后按個密碼去撞,撞開了就開了,建議大家買個云服務器進行破解哈,因像這種的第一,不知道密碼是幾位的,第二還有特殊符號的,唉,破解時間太長了,就用8位密碼來說吧,全部8位測試完密碼也得5個小時,筆記本那是嗡嗡的,為了自己的電腦,還不如掏個錢買個云服務器讓他自己跑著測密碼去,一小時也才2元錢,最低配置的哈。。。。
先看效果圖
私信小編01即可獲取大量Python/ target=_blank class=infotextkey>Python學習資源
別看這個1234密碼簡單,但是對于程序來說這個也是從1111然后1112然后1113一次類推,暴力到的1234
直接上Python源碼
import itertools as its ##這個庫,python自帶的
import rarfile #這個是操作rar壓縮包的,如果你需要破解別的密碼的話,比如pdf,那么請你安裝下pdf的第三方庫
### 這個根據需要來,這邊測試的是破解rar壓縮包
path1 = "E:\python2\rar\1.rar" # 需要解壓的文件路徑及地址
path2 = "E:\python2\rar" # 需要解壓到的文件夾地址
##下面的是你的密碼可能用的字符#
words = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&'( )*+,-./:;<=>?@[]^_`{|}~" ##密碼里面含有大小寫字母,數字以及特殊符號
re=4 ##這個是與下面的repeat相對應的,代表你需要生成幾位的數組。這里是4,代表生成4位的數組。
while 2>1:
r = its.product(words,repeat=re)
for i in r:
# print(type(i))
a ="".join(i) ##通過.join將數組里面的元素轉換成字符串
print("當前測試密碼:",a)
###嘗試測試密碼,如果錯誤continue,進入下一次循環
try:
rf = rarfile.RarFile(path1) # pwd為解壓密碼
rf.extractall(path=path2, pwd=a)
print('密碼破解成功:',a)
exit(0)
except Exception as e:
print(e)
continue
else:
re+=1 ###如果將所有的4位字符組合嘗試完成后,還是沒有破解到密碼,那么會將4再加上1,進行5位數的破解(這里沒有具體寫出,為了代碼的整潔,沒有寫出如何循環到5位數密碼)
結束語
密碼都可以破解成功的,只是時間的問題,如果是9位數的話估計的好幾天了,所以說,如果知道點密碼的詳情也好,那怕知道是幾位數的密碼,等也讓咱等的值得
比如我這個,我習慣性的把密碼從6位開始破解了,一直破解到8位還是沒破解開,人家的密碼設置成了5位數,你說氣人不