国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用python暴力破解zip壓縮包的密碼

這篇具有很好參考價值的文章主要介紹了使用python暴力破解zip壓縮包的密碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

如果你有壓縮包的密碼忘記了,并且壓縮包的加密算法采用的是ZipCrypto,并且壓縮參數(shù)如下圖所示:
zipcrypto,python代碼塊,python,開發(fā)語言
那么你就可以使用本文中的方法進行破解。

壓縮包的加密,是根據(jù)輸入的密碼進行運算加密,輸入不同的密碼,加密后的結(jié)果就是不同的二進制流。所以在進行解密的時候,不同的密碼會解密出不同的結(jié)果,但是只有一種結(jié)果是你想要的正確的結(jié)果。

假設(shè)組成密碼的字符總共有 a 個,密碼是1 ~ n位,那么可以組合出 S 種不同的密碼,一個字符占一個字節(jié),所有密碼的所有字符加在一起總共有 Q 個字節(jié)。下面分別給出 S 和 Q 的計算公式:
S = a 1 + a 2 + a 3 + a 4 + . . . . . . + a n (1) S = a^1+a^2+a^3+a^4+... ...+a^n\tag{1} S=a1+a2+a3+a4+......+an(1)
a S = a 2 + a 3 + a 4 + . . . . . . + a n + a n + 1 (2) aS=a^2+a^3+a^4+... ...+a^n+a^{n+1}\tag{2} aS=a2+a3+a4+......+an+an+1(2)
(1)式減去(2)式得:
( 1 ? a ) S = a 1 ? a n + 1 (1-a)S=a^1-a^{n+1} (1?a)S=a1?an+1
最后可以化簡得到:
S = a ( 1 ? a n ) 1 ? a . S=\dfrac{a(1-a^n)}{1-a}. S=1?aa(1?an)?.

Q = 1 ? a 1 + 2 ? a 2 + 3 ? a 3 + . . . . . . + n ? a n (3) Q=1·a^1+2·a^2+3·a^3+... ... + n·a^n\tag{3} Q=1?a1+2?a2+3?a3+......+n?an(3)
a Q = 1 ? a 2 + 2 ? a 3 + 3 ? a 4 + . . . . . . + ( n ? 1 ) ? a n + n ? a n + 1 (4) aQ=1·a^2+2·a^3+3·a^4+... ...+(n-1)·a^n+n·a^{n+1}\tag{4} aQ=1?a2+2?a3+3?a4+......+(n?1)?an+n?an+1(4)
(3)式減去(4)式得:
( 1 ? a ) Q = a 1 + a 2 + a 3 + a 4 + . . . . . . + a n ? n ? a n + 1 (1-a)Q=a^1+a^2+a^3+a^4+... ...+a^n-n·a^{n+1} (1?a)Q=a1+a2+a3+a4+......+an?n?an+1
化簡得:
Q = a ( 1 ? a n ) ( 1 ? a ) 2 + n ? a n + 1 a ? 1 . Q=\dfrac{a(1-a^n)}{(1-a)^2}+\dfrac{n·a^{n+1}}{a-1}. Q=(1?a)2a(1?an)?+a?1n?an+1?.

一開始,我的思路是先寫一個程序,這個程序把所有的密碼組合出來,寫入一個文件,然后再寫一個程序,這個程序負責(zé)把寫入的密碼讀取出來,再逐個暴力破解。但是后來發(fā)現(xiàn)這種思路存在幾個問題,如果密碼的組合可能性太多的時候,那么存取所有密碼的這個文件將會達到幾十個G(甚至更大)。壓縮包的密碼位數(shù)可以是1 ~ 127位的(超過127位的密碼也有)。以最大位數(shù)127位為例,假如不知道密碼是多少位,那么可以組合出:
9 4 1 + 9 4 2 + 9 4 3 + . . . . . . + 9 4 126 + 9 4 127 94^1+94^2+94^3+... ... + 94^{126}+94^{127} 941+942+943+......+94126+94127
種不同的密碼組合。使用上面的式子計算一下,就可以知道總共有:39073499766929905093170936199210360403225359398866973176589007276420630179610064715271048101086598784117989282816367722389837036292113256007435625512903036280893835514194448335273218252856958007222866912360893842268293858285256762926406241457713184768 種不同的密碼。

如果將所有的密碼組合寫入文件,不算回車換行符號,那么這個文件將會占 4961914325241313777553199490046598363526519239925145287832966868945419472665422521762910503472996114196429684959005740369797942759811562831081763117671397554605682022967601468185686939482979425062618339967434564286481867349313821628002924237784812093440 個字節(jié)。

并且,如果正確密碼是最后一個,那么將要循環(huán)到最后一個密碼才能破解成功,這樣將會很耗費時間。所以,我采用了隨機密碼暴力破解。

下面是代碼:

import zipfile

import os

import numpy as np



pwdCharset = ['`', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '=', '+', '[', ']', '{', '}', ';', ':', "'", '"', '\\', '|', ',', '<', '.', '>', '/', '?', 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# 94\

CharsetInput = []


def gPwd(chST, lgth, rgth):
    while True:
        pl = int(np.random.random() * 100)
        if pl >= lgth and pl <= rgth:
            break

    pwd = ""

    chStLen = len(chST)

    for i in range(0, pl):
        while True:
            idx = int(np.random.random() * 100)
            if idx >= 0 and idx < chStLen:
                break
        pwd += chST[idx]

    return pwd


def dcryp(fileName, lLen, rLen, chST):
    fp = zipfile.ZipFile(fileName)

    count = 0

    while True:
        pwd = gPwd(chST, lLen, rLen)
        count += 1
        try:
            for file in fp.namelist():
                fp.extract(file, pwd=pwd.encode())
                os.rename(file, file.encode('cp437').decode('gbk'))
            print("%d Success! The password is %s" % (count, pwd))
            break
        except:
            print("%d %s no" % (count, pwd))


if __name__ == "__main__":
    fileName = input("請輸入要破解的壓縮包文件名:")
    choose = input("按1選擇暴力破解。\n按2選擇指定條件破解\n")

    if "1" == choose:
        leftLen = int(input("確定密碼的長度范圍:\n請輸入密碼的最小長度:"))
        rightLen = int(input("請輸入密碼的最大長度:"))
        dcryp(fileName, leftLen, rightLen, pwdCharset)
    elif "2" == choose:
        charSt = input("請輸入密碼中可能包含的字符:\n")
        for i in charSt:
            CharsetInput.append(i)
        leftLen = int(input("確定密碼的長度范圍:\n請輸入密碼的最小長度:"))
        rightLen = int(input("請輸入密碼的最大長度:"))
        dcryp(fileName, leftLen, rightLen, CharsetInput)
    else:
        print("無效輸入!")

下面是測試:
zipcrypto,python代碼塊,python,開發(fā)語言

zipcrypto,python代碼塊,python,開發(fā)語言
zipcrypto,python代碼塊,python,開發(fā)語言
這里選用的是4位的定長密碼,嘗試了10515次,用了不到10秒鐘的到結(jié)果。

zipcrypto,python代碼塊,python,開發(fā)語言
zipcrypto,python代碼塊,python,開發(fā)語言
4位定長密碼,如果不指定字符集,用所有可能的字符集暴力隨機破解,總共有78074896種不同的密碼組合,一共嘗試了13478113次,將會用大概20多分鐘的時間。

密碼越長,且可能的字符越多,則破解的時間越長。

針對長而復(fù)雜的密碼,如果加密的內(nèi)容很重要,一定要破解出來的話,可以采用分布式破解,即一臺主機通過網(wǎng)絡(luò)將破解內(nèi)容分發(fā)給一個計算機集群,集群中的每一臺主機同時運行多個破解進程,并定期向控制主機發(fā)送心跳信號,反饋破解信息,這樣可以大大縮短破解時間。文章來源地址http://www.zghlxwxcb.cn/news/detail-810390.html

到了這里,關(guān)于使用python暴力破解zip壓縮包的密碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python暴力破解附近局域網(wǎng)WiFi密碼

    Python暴力破解附近局域網(wǎng)WiFi密碼

    本文將記錄學(xué)習(xí)下如何通過 Python 腳本實現(xiàn) WIFI 密碼的暴力破解,從而實現(xiàn)免費蹭網(wǎng)。 先來看看沒有圖形界面版的爆破腳本。 代碼運行效果: 以上腳本需內(nèi)嵌 WIFI 名、爆破字典路徑,缺少靈活性。下面進行改造優(yōu)化:??????? ? 腳本運行效果如下: 上述代碼實現(xiàn)了依

    2024年02月11日
    瀏覽(26)
  • 使用Kali Linux 暴力破解wifi密碼詳細步驟

    使用Kali Linux 暴力破解wifi密碼詳細步驟

    使用Kali Linux 暴力破解wifi密碼詳細步驟所謂暴力破解就是窮舉法,將密碼字典中每一個密碼依次去與握手包中的密碼進行匹配,直到匹配成功。所以能否成功破解wifi密碼取決于密碼字典本身是否包含了這個密碼。破解的時間取決于CPU的運算速度以及密碼本身的復(fù)雜程度。如果

    2024年02月12日
    瀏覽(25)
  • 使用開源的zip.cpp和unzip.cpp實現(xiàn)壓縮包的創(chuàng)建與解壓

    目錄 1、使用場景 2、壓縮包的創(chuàng)建 3、壓縮包的解壓 4、CloseZipZ和CloseZipU兩接口的區(qū)別?

    2024年02月07日
    瀏覽(24)
  • 破解zip加密壓縮文件

    由于之前把一些過去的學(xué)習(xí)資料壓縮加密了,過了很久之后忘記了當時設(shè)置的加密密碼,于是在網(wǎng)上查了一些關(guān)于破解密碼的文章,了解了強大的hashcat以及John the Ripper。 Hashcat是一個流行的開源密碼恢復(fù)工具,可以用于破解各種類型的哈希值,包括MD5、SHA1、SHA2等。它支持多

    2024年02月04日
    瀏覽(18)
  • 使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學(xué)

    使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學(xué)

    一個學(xué)習(xí)的過程 增加自己網(wǎng)絡(luò)安全知識 切勿用于違法用途 設(shè)置密碼盡量使用6位以上并規(guī)避簡單數(shù)字組合、加強對同一ip的頻繁訪問次數(shù)限制、設(shè)置人機驗證減小撞庫攻擊的危害 本地環(huán)境 kali 2022 Burp Suite FireFox 靶機環(huán)境 一臺服務(wù)器 CentOS 7 寶塔面板 一個域名(你不會沒有吧)

    2024年02月09日
    瀏覽(51)
  • 你安全嗎?丨詳解,如何暴力破解壓縮包

    你安全嗎?丨詳解,如何暴力破解壓縮包

    作者:黑蛋 ? 你安全嗎?在電視劇《你安全嗎》第四集中,碰到這么一個畫面: 這個畫面一閃而過,可以看到,在這個畫面中可以看到一堆有鎖的文件,還有“已耗時1003天,預(yù)計剩余8928天”,“FILE TRANSFER DECRYPTION(文件傳輸解密)”等字眼,我個人感覺這是一個伏筆,一條

    2024年02月15日
    瀏覽(24)
  • C++ minizip的簡單使用,zip文件的創(chuàng)建、讀取、修改、密碼壓縮、4G以上大文件壓縮。

    ? ? ? ? 兄弟姐妹們好,深夜黨又來記錄枯燥的編程生活了。今天給大家?guī)淼氖莔inizip庫,一個解壓和壓縮文件的開源代碼庫,如題目所示的結(jié)構(gòu)來介紹。你可以在下面的鏈接搜索到minizip庫: http://www.winimage.com/zLibDll/minizip.html ? ? ? ?github地址: zlib/contrib/minizip at master ·

    2024年02月04日
    瀏覽(25)
  • 暴力破解WiFi密碼

    暴力破解WiFi密碼

    所需要的設(shè)備及軟件 : 一個可支持監(jiān)聽功能的無線網(wǎng)卡 VMware Workstation 15 Pro(這里版本是15.1,之前用15.5在插入網(wǎng)卡時沒有反應(yīng)) kali系統(tǒng) 步驟: 將無線網(wǎng)卡插入USB口,將其連接到虛擬機里 連接后多等一會,等到可以查看到附近wifi 如果搜索不到附近WiFi斷開連接后在重新連

    2024年02月11日
    瀏覽(18)
  • 利用暴力攻擊破解登陸密碼

    利用暴力攻擊破解登陸密碼

    長久以來,入侵遠程計算機系統(tǒng)的工具和技術(shù)并沒有發(fā)生翻天覆地的變化。例如,在許多情況下,普通用戶只要知道了相關(guān)密碼,就能立刻變身為管理員。雖然這些情形聽起來不夠曲折,但在大多數(shù)情況下,暴力攻擊是通過利用密碼管理缺陷來入侵系統(tǒng)的最簡單實用的方法。

    2024年02月05日
    瀏覽(26)
  • 密碼暴力破解、滲透測試流程

    信息收集 1、掃描的價值 對攻擊者來說:根據(jù)掃描結(jié)果,來決定進一步的攻擊行動; 能夠更有針對性地選擇攻擊方法、攻擊工具,節(jié)省攻擊時間 對防護者來說:根據(jù)掃描結(jié)果,判斷應(yīng)采取什么樣的安全策略; 封堵漏洞、加固系統(tǒng)、完善訪問控制 2、nmap Network Mapper,一款開源

    2024年02月08日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包