国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
python暴力破解Zip文件,一點道理都不講
https://www.toutiao.com/a6531952192197231108/
?
?本次實驗將帶領(lǐng)大家用Python的zipfile模塊實現(xiàn)Zip文件的暴力破解,涉及的知識點包括:zipfile、argparse的用法等等。
?一、實驗說明

1. 實驗簡介

我們在網(wǎng)上好不容易下載到一個想要的zip資源卻發(fā)現(xiàn)這個zip文件是加密的,或者忘掉自己壓縮后的密碼(一想到就頭疼)。這時候我們就會想辦法,將里面的內(nèi)容提取出來。我目前已知的破解zip的方式只有“Known plaintext attack”和“暴力破解”。由于“Known plaintext attack”也有比較大的局限性,而且本次實驗的定位是入門級的。所以本次實驗將帶領(lǐng)大家用Python的zipfile模塊實現(xiàn)Zip文件的暴力破解。

2. 開發(fā)環(huán)境

  • Ubuntu Linux

  • Python 3.x版本

3. 知識點

  • zipfile 的使用方法

  • argparse 的使用方法

4.效果圖

二、前置知識

在編寫程序之前我們先來學習一下我們需要用到的兩個庫zipfile和argparse。

1. zipfile模塊

從本次實驗的主題可以看出我們的重點是對zip文件的操作,而zipfile就是本次實驗的核心。zipfile模塊是python中自帶的模塊,提供了對zip文件的創(chuàng)建讀、寫、追加、解壓以及列出zip文件列表的工具。這里我們主要用到ZipFile對象的extractall 方法來解壓zip文件,現(xiàn)在我們看一下ZipFile的文檔,在shell中運行Python3交互環(huán)境,并使用help方法來查看模塊的使用方法。

找到ZipFile對象extractall(path=None, members=None, pwd=None)方法的說明。

可以看到extractall(path=None, members=None, pwd=None)方法主要有三個參數(shù),我們來看一下每個參數(shù)的含義:

  • path指定解壓后文件的存儲位置

  • members(可選)指定要Zip文件中要解壓的文件,這個文件名稱必須是通過namelist()方法返回列表的子集

  • pwd指定Zip文件的解壓密碼

我們先來看下如何用zipfile模塊解壓一個帶密碼的Zip文件。為了照顧不熟悉Linux系統(tǒng)的同學們,我這里帶著大家準備一下我們需要的文件。

首先我們進入Code目錄:

cd Code

創(chuàng)建一個用于我們實驗的目錄deZip:

mkdir deZip

進入deZip目錄:

cd deZip

現(xiàn)在我們創(chuàng)建1.txt文件:

touch 1.txt

將1.txt文件壓縮成加密的1.zip文件,密碼為1314:

zip -r 1.zip 1.txt -P 1314

現(xiàn)在我們的準備工作就完成了,我們來看一下Demo吧!

import zipfile

try:

with zipfile.ZipFile('1.zip') as zFile: #創(chuàng)建ZipFile對象

#解壓文件

zFile.extractall(path='./',pwd=b'1314')

print('Extract the Zip file successfully!')

except:

print('Extract the Zip file failed!')

將代碼保存為demo.py我們測試一下是否能正確解壓文件:

可以看到我們解壓成功了!是不是覺得很簡單?

2. argparse模塊

本次實驗我們選擇使用argparse模塊來解析命令行參數(shù)。下面我們來查看一下argparse模塊的文檔描述。

argparse提供了非常友好的命令行解析接口,在命令行參數(shù)比較多的時候更為明顯。雖然本次實驗命令行參數(shù)比較少,但是我們最好養(yǎng)成使用argparse的習慣有助于我們解析較多參數(shù)的時候不會有不知所措的感覺!

現(xiàn)在我們來演示一下argparse的用法:

import argparse

parser = argparse.ArgumentParser(description='Regards to your name.')

parser.add_argument('-n', dest='m_name', type=str, help='your name')

options = parser.parse_args()

print('Hello',options.m_name)

先看一下運行結(jié)果:

現(xiàn)在我們分析這個例子來學習argparse的使用方法: 首先我們導入了argparse這個模塊,通過argparse.ArgumentParser方法來獲得解析器對象。description是在我們輸出命令行參數(shù)幫助信息時起到描述的作用。add_argument方法用來添加我們需要解析的參數(shù),可以看到我們這里添加了-n參數(shù),dest相當于存儲命令行參數(shù)值的變量,提取這個變量的時候我們要用到,比如上面Demo中的options.m_name。type表示我們輸入的類型,這里是str。help是用來說明參數(shù)的,和description一樣在我們輸出命令行幫助信息時會顯示出來。

至于使用argparse解析命令行參數(shù)我就講到這里,更詳細的用法還是希望同學們能自己查看文檔。畢竟篇幅有限,我們要學的東西很多,都需要自己去查看文檔來深入學習。

三、代碼實現(xiàn)

通過前面的學習,我們已經(jīng)了解了如何解壓一個帶密碼的Zip文件。我們今天要實驗的內(nèi)容是暴力破解Zip文件,基本思路就是我們不斷去讀取密碼字典嘗試解壓帶密碼的Zip文件,如果成功則表示這個密碼正確,失敗則繼續(xù)讀取密碼字典中的密碼并嘗試解壓縮,直到解壓縮成功或者密碼字典中的密碼都嘗試一遍。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python小課堂17
python命令行傳遞參數(shù)的兩種方式!
學Python需要天賦嗎?看完弟弟編寫的爬蟲與爆破腳本,只有汗水!
我用Python破解了同事加密的壓縮包
幾個提高工作效率的Python內(nèi)置小工具
python OptParse模塊和argparse命令行解析的用法詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服