當(dāng)前位置:首頁(yè)>職場(chǎng)>python加密程序(我用Python破解了同事的加密壓縮包)
發(fā)布時(shí)間:2024-01-24閱讀(15)
作者 | 朱小五
來(lái)源 | 凹凸玩數(shù)據(jù)(ID: alltodata)
又是一杯奶茶。
事情的經(jīng)過(guò)是這樣的:


又是奶茶,行吧行吧。
快點(diǎn)開(kāi)工,爭(zhēng)取李大偉回來(lái)之前搞定。
李大偉說(shuō)是6位數(shù)字密碼
那么我們可以利用Python生成全部的六位數(shù)字密碼
#生成從000000到99999的密碼表
f = open(passdict.txt,w)
for id in range(1000000):
password = str(id).zfill(6)
f.write(password)
f.close
這樣,我們就生成了一個(gè)從000000到99999的密碼表。
并把它們存入到 passdict.txt 的文件中。

6位的密碼表就這么大!??!
下一步做什么?
自然是將生成的密碼表中的密碼遍歷,
暴力破解啦!
科普時(shí)間:
ZipFile模塊式Python自帶的模塊,提供了對(duì)zip 文件的創(chuàng)建,讀,寫(xiě),追加,解壓以及列出文件列表的操作
解壓使用extractll方法extractall(path=None, members=None, pwd=None)
path:指定解壓后文件的位置
members:(可選)指定要Zip文件中要解壓的文件,這個(gè)文件名稱必須是通過(guò)namelist方法返回列表的子集
pwd:指定Zip文件的解壓密碼
那么我們可以利用 zipFile 模塊來(lái)遍歷密碼表,
挨個(gè)挨個(gè)密碼嘗試,看能不能打開(kāi)壓縮包。
直到成功。
導(dǎo)入zipFile
import zipfile
def extractFile(zipFile, password):
try:
zipFile.extractall(pwd= bytes(password, "utf8" ))
print("李大偉的壓縮包密碼是" password) #破解成功
except:
pass #失敗,就跳過(guò)
def main:
zipFile = zipfile.ZipFile(李大偉.zip)
PwdLists = open(passdict.txt) #讀入所有密碼
for line in PwdLists.readlines: #挨個(gè)挨個(gè)的寫(xiě)入密碼
Pwd = line.strip( )
guess = extractFile(zipFile, Pwd)
if __name__ == __main__:
main
花了不到一分鐘
成功解出密碼是:

收工√
趁著李大偉還沒(méi)回來(lái),
多說(shuō)兩句。
李大偉設(shè)置的只是6位數(shù)字的密碼,
所以本次只要單線程暴力遍歷就ok了。
那如果更多位數(shù),
字母數(shù)字特殊字符混合的復(fù)雜密碼呢?
我們可以應(yīng)用多線程進(jìn)程解壓,加快速度
網(wǎng)絡(luò)上還有一些暴力破解字典,
可以下載用來(lái)遍歷
感興趣的朋友們不妨試試。
大偉回來(lái)了。
我告訴他密碼就是壓縮包當(dāng)天的日期。
李大偉表示:20191119他已經(jīng)試過(guò)了。
然而這個(gè)壓縮包的壓縮時(shí)間是前一天20191118啊。
你口口聲聲說(shuō)用當(dāng)天日期,拿今天1119試什么試?

不過(guò)奶茶真好喝~
相關(guān)破解源碼和李大偉壓縮包已上傳Github:
https://github.com/zpw1995/aotodata/tree/master/interest/zip
作者:朱小五,互聯(lián)網(wǎng)公司數(shù)據(jù)分析師。熱衷于Python爬蟲(chóng),數(shù)據(jù)分析,可視化,個(gè)人公眾號(hào)《凹凸玩數(shù)據(jù)》,有趣的不像個(gè)技術(shù)號(hào)~
(*本文為AI科技大本營(yíng)轉(zhuǎn)載文章,轉(zhuǎn)載請(qǐng)聯(lián)系原作者 )
精彩公開(kāi)課
歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-221620.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號(hào)-5 TXT地圖HTML地圖XML地圖