⚡我用python玩“爆破”⚡——暴力破解密码

Posted 肥学大师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了⚡我用python玩“爆破”⚡——暴力破解密码相关的知识,希望对你有一定的参考价值。

📣python有趣练手项目,可以让你快乐学python练手项目专栏

🏅导读

这几天在学习Java,在网上找了一些资源在网盘上下载资源的时候遇到了压缩文件要解压密码,而且说什么

于是抱着学Javapython的目的来试试破解掉这个解压码

🏅开干

🏅思路

既然我们都叫爆破了当然就没有什么巧妙的方法了,我们用十位数字和26未字母组成3到6位的密码进行逐一试探,这样做可行主要是因为这个密码尝试没有限制,像有的网站啥的限制只能尝试三次就玩不了了。

🏅主要函数


import zipfile
import itertools

下面我们简单说一下这两个函数是干啥的
zipfile就是一个用来解压文件的在这里大家可以看一下官方文档:链接
举个例子:

import zipfile

try:
    ZIP = zipfile.ZipFile(r'C:\\Users\\Lenovo\\Desktop\\java.zip')  # 路径最好别有中文
    ZIP.extractall(path=r'C:\\Users\\Lenovo\\Desktop',pwd=b'1234')  # 解压到哪个路径
    print("成功")

except:
    print("失败")

itertools模块在这里的功能是有序的重复抽样。

import itertools

def keyword(dic,num):
    key1= itertools.product(dic,repeat=num)#repeat是密码的位数,这个函数是用来构成列表里面所有数的排列
    print(type(key1))
    key2 = (''.join(i) for i in key1)
    return key2
if __name__ == '__main__':
    lis = ['3', '2']
    print(list(keyword(lis,3)))

结果:
<class 'itertools.product'>
['333', '332', '323', '322', '233', '232', '223', '222']

🏅源码和结果

import zipfile
import itertools

# 构造所有密码元素如果有其他特殊字符也可以自己添加
lis= ['1', '2', '3', '4','5','6','7','8','9','0',
                'a','b','c','d','e','f','g','h','i','j','k',
                'l','m','n','o','p','q','r','s','t','u','v',
                'w','x','y','z']        

temp = True      # 用于破解成功后,停止循环的变量

# 我觉的密码最少也要四位起步吧就从四开始了
for x in range (4,17):
    if temp:
        def keyword():
            key1 = itertools.product(lis,repeat=x)
            key2 = (''.join(i) for i in key1)
            return key2

        def trypassword (password):
            try:
                ZIPFILE = zipfile.ZipFile(r'C:\\Users\\Lenovo\\Desktop\\java.zip')   # 要破解的文件
                ZIPFILE.extractall(path=r'C:\\Users\\Lenovo\\Desktop',pwd=password.encode('utf-8'))     # 解压到哪个路径下
                print(f"解压成功,正确密码为:{password}")       # 解压成功,并打印出正确密码
                global temp      # 声明为全局变量,没有声明,重新赋值无效
                temp = False     # 解压成功,停止循环
                return True
            except:
                print(f"解压失败,尝试密码为:{password}")
                return False

        #用trypassword函数返回的True或者Flase来判定程序是否终止。
        for p in keyword() :
            if trypassword(p):
                break


成了,哈哈哈成功白嫖

🏅最重要的事

📣小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶
📣python有趣练手项目,可以让你快乐学python练手项目专栏

📣另外想学JavaWeb进厂的同学可以看看这个专栏:传送们
📣这是个面试和考研的算法练习我们一起加油上岸之路

以上是关于⚡我用python玩“爆破”⚡——暴力破解密码的主要内容,如果未能解决你的问题,请参考以下文章

Python攻防-暴力破解附近局域网WIFI密码

Python攻防-暴力破解附近局域网WIFI密码

想蹭❤️小姐姐的热点❤️被拒后,我用❤️Python来暴力破解了WiFi的密码❤️

基于python实现暴力破解凯撒密码

网络安全WiFi密码爆破教程

Python暴力破解网站登录密码(带token验证)