忘记密码?不存在的, 教你如何使用python 暴力破解

忘记密码?不存在的, 教你如何使用python 暴力破解

 教你如何使用暴力破解

 

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

上期回顾:如何实现压缩文件通过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循环来解决。

 

代码如下:

"""纯数字密码破解"""
#这种情况不包含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()  # 关闭文件,必须有,释放内存

 

 

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

 

 

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循环。

 

那我们来看一下升级版:

"""字符串暴力破解"""
# 包含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根据自己的想要填下,比如是数字,或者只有字母

 

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

 

相关推荐:

 

七夕表白代码

隐藏表白技能,python教你如何使用图片exif信息隐藏表白

七夕表白弹窗

二维码表白之二维码里面的小秘密

扫描下方二维码,关注我们,了解更多有趣的编程。

忘记密码?不存在的, 教你如何使用python 暴力破解

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111398.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月18日 上午9:00
下一篇 2021年9月18日 上午10:00


相关推荐

  • 关于微软输入法输入特殊符号的方法

    关于微软输入法输入特殊符号的方法偶尔看了一下 julia 编程语言的 Documentatio 其中有一个整除符号 和 这个异或符号 于是寻找这些特殊符号的键盘输出方法 找到了微软输入法输入特殊符号的一些方法 记录如下 一 右键单击输入法栏 二 选择设置 打开微软输入法设置 三 选择高级 查看是否打开 U 模式输入 四 如果打开 那么就可以用 U 模式输入法啦 打开文本编辑器 比如记事本 先用键盘点击 u 注意是小写

    2026年3月26日
    2
  • 线段树的原理与模板

    线段树的原理与模板nbsp nbsp nbsp nbsp 如果会树状数组的同学应该就很容易理解线段树了 在一定程度上 两者是有一点类似的 首先 了解一下我们为什么要使用线段树 以及线段树的主要作用 区间求和问题 医院卖药 nbsp nbsp nbsp nbsp 假设有一家医院 医院有卖药的地方 不同的药品有不同的数量 每次开药 进药都要在计算机里面记录数量变化 这样方便医院的管理 那么我们该如何实现这样的程序 当然 药品数量的储存用数组是比较合适的 真实的

    2026年3月26日
    1
  • CurrentHashMap笔记

    CurrentHashMap笔记其key不为空桶上链表长度达到8个或者以上,并且数组长度为64以下时只会触发扩容而不会将链表转为红黑树CurrentHashMap(jdk1.8)之所以线程安全因为在添加元素时候,采用synchronized来保证线程安全,然后计算size的时候采用CAS操作进行计算,采用volatile修饰HashEntry[]table保存数据(Node数组),采用table数组元素作为锁细化锁粒度CurrentHashMap(jdk1.7)(Entry数组)之所以线程安全因为

    2022年6月18日
    26
  • 六个可以永久收藏的网站

    六个可以永久收藏的网站1:Aconvertaconvert.com/cnAconvert是一个完全免费并且不限转换次数的多功能文件格式转换网站,转换效果非常出色。它的功能非常强大,支持转换的文件类型包括:PDF、文档、电子书、图像、视频、音频、压缩文件。它还支持将网页转换为PDF、JPG、PNG格式。其中PDF格式转换,不仅支持将Word、Excel、PPT、HTML、TXT、DWG、JPG、PNG、GIF和TIFF文件转换为PDF,也支持将PDF文件转换为Word、Excel

    2022年5月18日
    625
  • 股票实时数据接口api_股票开放接口api

    股票实时数据接口api_股票开放接口api免费股票数据API接口提供沪深、香港、美国股市信息。1.沪深股市2.香港股市3.美国股市4.香港股市列表5.美国股市列表6.深圳股市列表7.沪股列表API文档:https://www.juhe.cn/docs/api/id/21,申请获取APPKEY即可调用。示例代码PHP股票数据示例Python股票数据接口调用示例C#股票…

    2025年11月28日
    7
  • linux重命名命令

    linux重命名命令https www cnblogs com mafeng p 8000355 html

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号