欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python輕松破解加密壓縮包教程詳解

 更新時(shí)間:2021年12月11日 14:54:54   作者:嗨學(xué)編程  
相信大家都遇到過(guò)這種情況,下載文件的時(shí)候遇到壓縮包又沒(méi)有密碼,或者說(shuō)自己設(shè)置的加密密碼,但是忘記了,就很難受。下面就將為大家介紹如何解決這一問(wèn)題

相信大家都遇到過(guò)這種情況,下載文件的時(shí)候遇到壓縮包又沒(méi)有密碼,或者說(shuō)自己設(shè)置的加密密碼,但是忘記了,就很難受~

在這里插入圖片描述

但是~

在Python程序員面前,這都是小問(wèn)題!

在這里插入圖片描述

話不多說(shuō),我們直接開(kāi)始操作.。

一、準(zhǔn)備工作

我們先打開(kāi)一個(gè)加密的壓縮包嘗試原始方法解壓一下

在這里插入圖片描述

然后彈出來(lái)讓我輸密碼

在這里插入圖片描述

正常打不開(kāi),如果你點(diǎn)擊跳過(guò)所有加密,它也不會(huì)打開(kāi),直接就關(guān)閉當(dāng)前你窗口了。

那正常情況下,我們能怎么辦,什么也辦不了,下一個(gè)會(huì)更乖。

在這里插入圖片描述

我們打開(kāi)pycharm,新建一個(gè)py文件,暫且我把它命名為zip_pwd

靈魂三問(wèn):沒(méi)有pycharm?Python也沒(méi)有?還不會(huì)安裝?私我

在這里插入圖片描述

在這之前呢,我們先要去收集一些信息,比如當(dāng)前的密碼位數(shù)與類(lèi)型。

類(lèi)型包含包括它有沒(méi)有特殊字符,有沒(méi)有字符串,是不是純數(shù)字。

假設(shè)我們現(xiàn)在已知信息呢,總共有兩個(gè),已知當(dāng)前密碼類(lèi)型為整形,六位數(shù)密碼。

我們先創(chuàng)建一個(gè)純數(shù)字6位密碼庫(kù),你也可以去GitHub上面下載一個(gè)包含所有字符的密碼字典庫(kù),這個(gè)現(xiàn)在是開(kāi)源的,破解時(shí)間具體要看設(shè)置的密碼長(zhǎng)短、復(fù)雜與否。

在這里插入圖片描述

二、開(kāi)始操作

回到正題

已知我們現(xiàn)在的密碼是六位純數(shù)字,那么怎么自己創(chuàng)建密碼字典呢?

首先我們要完成一個(gè)文件寫(xiě)入的功能

首先聲明一個(gè)變量 f

f = open()
# Python內(nèi)置函數(shù)  

open是一個(gè)IO流,可以完成文件讀寫(xiě)功能。

比如說(shuō)我先想在一個(gè)文件里寫(xiě)入一些內(nèi)容,就可以通過(guò)open去做 。

然后我們通過(guò)open創(chuàng)建一個(gè)文件,名字暫且命名為possword.txt,在加入一個(gè)寫(xiě)入方式,以 w方式去寫(xiě)入。

f = open('password.txt','w')

然后通過(guò)循環(huán)去創(chuàng)建密碼,密碼設(shè)置個(gè)1000000

for id in range(1000000)

這時(shí)候需要?jiǎng)?chuàng)建一個(gè)password變量生成密碼,創(chuàng)建之前先導(dǎo)入一個(gè)方法的包。

import zipfile

然后通過(guò)password可以開(kāi)始生成密碼了 ,這個(gè)zfill等于 6位的,再加上換行,因?yàn)樯梢粋€(gè)密碼就要換一行,并且生成密碼應(yīng)該是一個(gè)字符串類(lèi)型。

password = str(id).zfill(6) + '\n'

然后通過(guò)f.write方法把password寫(xiě)入到文件當(dāng)中

f.write(password)

寫(xiě)進(jìn)去之后要去關(guān)閉當(dāng)前的文件流

f.close()

然后我們來(lái)嘗試去生成一下,看看能不能成功。

import zipfile

f = open('password.txt','w')
for id in range(1000000)
    password = str(id).zfill(6) + '\n'
    f.write(password)
f.close()

可以看到這里給我們生成了一個(gè)possword.txt密碼字典,它是一個(gè)密碼庫(kù)。

在這里插入圖片描述

從000000一直到999999它已經(jīng)全部生成出來(lái)了。

在這里插入圖片描述

這就是一個(gè)簡(jiǎn)單的密碼字典生成方式,如果要去生成一個(gè)比較復(fù)雜的密碼肯定不會(huì)這么簡(jiǎn)單,給你們看個(gè)一個(gè)復(fù)雜的,這里我就不演示了,看看就可以了,將近寫(xiě)了一萬(wàn)多行。

在這里插入圖片描述

所以你們自己想要去生成的話,還得專(zhuān)門(mén)好好學(xué)一下。

在這里插入圖片描述

搞定六位數(shù)數(shù)字密碼字典后我們需要完成解決壓縮文件密碼的函數(shù)

首先我們先來(lái)聲明一個(gè)函數(shù) ,取個(gè)名字叫file,然后加入兩個(gè)行參。

第一個(gè)是我的壓縮文件zipfile,第二個(gè)是當(dāng)前需要傳入的密碼password

def pwd_file(zipfile,password):

傳完行參后寫(xiě)上一個(gè)異常處理,調(diào)用zipfile,它里面會(huì)有一個(gè)方法extractall傳入兩個(gè)值,第一個(gè)是pwd傳入字節(jié),在字節(jié)里傳入行參,編碼集是utf8

tey:
	zipfile.extractall(pwd=bytes(password, 'utf8'))

然后print壓縮包密碼,打印password

print('壓縮包密碼:', password)

因?yàn)槊艽a庫(kù)里面密碼比較多,只有一個(gè)正確的,其它的都是錯(cuò)誤的,所以肯定會(huì)報(bào)錯(cuò),所以我們要寫(xiě)一個(gè)異常處理,寫(xiě)上一個(gè)pass就可以了,報(bào)錯(cuò)了就給它pass掉。

except:
    pass

這就是一個(gè)簡(jiǎn)單的函數(shù),我們通過(guò)zipfile它里面的一個(gè)extractall方法去智能的獲取正確密碼,它是可以自動(dòng)匹配密碼的。

所以說(shuō)Python牛逼,很多東西都不需要我們?nèi)?xiě),直接調(diào)用就好了。

在這里插入圖片描述

然后我們來(lái)寫(xiě)上執(zhí)行函數(shù)

先寫(xiě)上一個(gè)main函數(shù)

def main():

main函數(shù)里面,通過(guò)zipfile方法把加密的壓縮文件代入到代碼中。

zipFlie = zipfile.ZipFile('./獲取文件密碼.zip')

通過(guò)pwd生成一個(gè)list變量,打開(kāi)生成的密碼文件。

pwd_list = open('./password.txt')

然后我們需要一個(gè)一個(gè)去試密碼,這個(gè)是一行一行的去讀。

for line in pwd_list.readlines():

讀到一個(gè)就把它寫(xiě)進(jìn)去,拿到一個(gè)密碼刪除一個(gè)換行符。

pwd = line.strip('\n')

通過(guò)pwd_file調(diào)用之前寫(xiě)的函數(shù),傳zipFliepwd

pwd_file(zipFlie, pwd)

最后寫(xiě)入函數(shù)入口,寫(xiě)上一個(gè)main,為什么要寫(xiě)這個(gè)函數(shù)入口呢?不寫(xiě)也可以運(yùn)行的。

因?yàn)樗怯脕?lái)去做測(cè)試的。

if __name__是一個(gè)測(cè)試入口,什么意思呢?

比如我在當(dāng)前文件下導(dǎo)入了其它文件庫(kù),但是我又不想用,我就可以通過(guò)if讓它不去運(yùn)行,所以可寫(xiě)可不寫(xiě),當(dāng)一個(gè)延伸。

if __name__ == '__main__':
    main()

全部代碼

import zipfile


f = open('password.txt', 'w')
for id in range(1000000):
    password = str(id).zfill(6) + '\n'
    f.write(password)
f.close()


def pwd_file(zipFlie, password):
    try:
        zipFlie.extractall(pwd=bytes(password, 'utf8'))
        print('壓縮包密碼:', password)
    except:
        pass


def main():
    zipFlie = zipfile.ZipFile('./獲取文件密碼.zip')
    pwd_list = open('./password.txt')
    for line in pwd_list.readlines():
        pwd = line.strip('\n')
        pwd_file(zipFlie, pwd)


if __name__ == '__main__':
    main()

我們看看效果,可以看到壓縮包的密碼已經(jīng)打印出來(lái)了。

在這里插入圖片描述

如果你要獲取的密碼越復(fù)雜,你的電腦越好就計(jì)算的越快。

兄弟們,學(xué)廢了嗎?

原創(chuàng)不易,點(diǎn)個(gè)贊支持一下哇~

在這里插入圖片描述

到此這篇關(guān)于Python輕松破解加密壓縮包詳解的文章就介紹到這了,更多相關(guān)Python破解加密壓縮包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用python對(duì)圖片進(jìn)行批量壓縮詳解

    如何使用python對(duì)圖片進(jìn)行批量壓縮詳解

    對(duì)于圖片強(qiáng)行被定義高和寬會(huì)變形,我們希望圖片被改變大小后,比例保持不變,完成對(duì)圖片的壓縮,下面這篇文章主要給大家介紹了關(guān)于如何使用python對(duì)圖片進(jìn)行批量壓縮的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Pandas之使用drop_duplicates:去除重復(fù)項(xiàng)

    Pandas之使用drop_duplicates:去除重復(fù)項(xiàng)

    這篇文章主要介紹了Pandas之使用drop_duplicates:去除重復(fù)項(xiàng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Python實(shí)現(xiàn)信用卡系統(tǒng)(支持購(gòu)物、轉(zhuǎn)賬、存取錢(qián))

    Python實(shí)現(xiàn)信用卡系統(tǒng)(支持購(gòu)物、轉(zhuǎn)賬、存取錢(qián))

    這篇文章主要介紹了Python實(shí)現(xiàn)信用卡系統(tǒng)(支持購(gòu)物、轉(zhuǎn)賬、存取錢(qián))的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Python3中str、bytes、bytearray轉(zhuǎn)化

    Python3中str、bytes、bytearray轉(zhuǎn)化

    本文主要介紹了Python3中str、bytes、bytearray轉(zhuǎn)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python2.x版本中cmp()方法的使用教程

    Python2.x版本中cmp()方法的使用教程

    這篇文章主要介紹了Python2.x版本中cmp()方法的使用教程,在Python3.x版本中該方法不再被內(nèi)置,需要的朋友可以參考下
    2015-05-05
  • python字符串中匹配數(shù)字的正則表達(dá)式

    python字符串中匹配數(shù)字的正則表達(dá)式

    正則表達(dá)式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配。這篇文章主要介紹了python字符串中匹配數(shù)字的正則表達(dá)式 ,需要的朋友可以參考下
    2019-07-07
  • Python文件讀寫(xiě)open函數(shù)詳解

    Python文件讀寫(xiě)open函數(shù)詳解

    這篇文章主要介紹了Python文件讀寫(xiě)open函數(shù)詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Python?的counter()函數(shù)解析與示例詳解

    Python?的counter()函數(shù)解析與示例詳解

    在?Python?中,?collections?模塊提供了?Counter?類(lèi),用于計(jì)算可迭代對(duì)象中元素的數(shù)量,?Counter?是一個(gè)字典的子類(lèi),它以元素作為鍵,以元素出現(xiàn)的次數(shù)作為值進(jìn)行計(jì)數(shù),本文給大家介紹Python?的counter()函數(shù),感興趣的朋友一起看看吧
    2023-08-08
  • Python RuntimeError: thread.__init__() not called解決方法

    Python RuntimeError: thread.__init__() not called解決方法

    這篇文章主要介紹了Python RuntimeError: thread.__init__() not called解決方法,需要的朋友可以參考下
    2015-04-04
  • python實(shí)現(xiàn)八大排序算法(1)

    python實(shí)現(xiàn)八大排序算法(1)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)八大排序算法的第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評(píng)論