前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >密码不知道?教你如何使用暴力破解

密码不知道?教你如何使用暴力破解

作者头像
大家一起学编程
发布2021-03-29 15:04:30
5.3K0
发布2021-03-29 15:04:30
举报

教你如何使用暴力破解

本文续上一期压缩文件,这期,我们来讨论一下如何在不知道密码的情况下进行暴力破解。

上期回顾:如何实现压缩文件通过python解密

01— 准备材料

这期准备材料比较少,都是基础代码。

1、掌握基础for循环,if判断。

2、掌握递归的用法。

02— 实现原理

我们来讨论一下暴力破解的实现原理吧!

首先我们来看一下,1,2这两个数字有多少种两位数以下的组合情况。

是的,有6种:1、2、11,12、21、22。

如果是123,有多少种两位数的组合情况。

12种,分别是:1、2、3、11,12、13、21、22、23、31、32、33

换种方式:

我们的密码是1位数的,请问有多少种情况!

答案是10种,0也是。密码从0到9的数字

那我如果我们设置的密码是两位数的,有多少种情况!

答案是100种。从00到99的数字。

来,那我们发现一个规律没有,对于这种简单的操作,那我们就可以使用一个for循环来解决。

代码如下:

代码语言:javascript
复制
"""纯数字密码破解"""
#这种情况不包含000001的情况。
zip_file = zipfile.ZipFile("zip.zip")
zip_list = zip_file.namelist()  # 得到压缩包里所有文件
for i in range(9999):
    x=str(i)
    y=False
    for f in zip_list:
        try:
            zip_file.extract(f, "zip",x.encode('utf-8'))  # 循环解压文件到指定目录
            print("密码正确,密码是"+x)
            y=True
        except BaseException as e:
            print("密码输入错误"+x)
            break
    if y==True:
        break
zip_file.close()  # 关闭文件,必须有,释放内存

上面这种是纯数字的破解方式,下面我们来实现不是纯密码的情况

代码语言:javascript
复制
list=[1,2,3]
for i in list:
    print(i)
    for j in list:
        print(i+j)
        for y in list:
            print(i+j+y)

如上,是基本原理,根据需要,我们可以自己添加需要的位数。上面这个是3位数以下的所有情况。

看了上面的代码,我们想做一下简化操作,如果密码有60位,那我们岂不是要写60个for循环。

那我们来看一下升级版:

代码语言:javascript
复制
"""字符串暴力破解"""
# 包含000001的情况。
# zmb="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
zmb = "abcdefg"
list = zmb.replace("", " ").split()

def blpj(list, num=2, x="", a=1, y=[]):
    a += 1
    for j in list:
        y.append(x + j)  # print(x+j)
        if a != num + 1:
            blpj(x=x + j, num=num, a=a, list=list)#内部调用自己,递归处理
    return len(y), y#返回一个密码组合列表。

print(blpj(list, num=4))#调用并打印,list根据自己的想要填下,比如是数字,或者只有字母

到此暴力破解算法结束,喜欢觉得点赞加关注呀!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大家一起学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档