忘记密码?不存在的, 教你如何使用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 暴力破解

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 主板开启网络唤醒_WOL网络唤醒远程开机功能设置方法图文教程[通俗易懂]

    主板开启网络唤醒_WOL网络唤醒远程开机功能设置方法图文教程[通俗易懂]很多使用WOL远程唤醒软件的用户们都不知道怎么开启WOL网络唤醒远程开机功能,有这软件也用不了啊!今天小编就给大家介绍怎样才能设置电脑远程唤醒,不同牌子的主板、网卡、路由器在选项设置的名称和位置上都基本都不相同,但是思路都是差不多的,大家用户根据自己电脑的实际情况进行设置。1.设置主板BIOS首先,我们要在主板BIOS里面设置WOL唤醒功能的开关,大部分主板都会支持唤醒,但每个主板的…

  • mysql 10061解决方法

    mysql 10061解决方法

  • 美化QTabWidget[通俗易懂]

    美化QTabWidget[通俗易懂]美化QTabWidget1.效果展示2.用法展示MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);setupUI();ui->tabWidget->addTab2(newQWidget(),tr(“thisisfirsttab”));}MainWindo

  • opencv行人检测python_19年赚钱新思路

    opencv行人检测python_19年赚钱新思路CVPR2019行人检测新思路:高级语义特征检测取得精度新突破原创: CV君 我爱计算机视觉 今天点击我爱计算机视觉置顶或标星,更快获取CVML新技术今天跟大家

  • 如何删除LDSGameMaster

    如何删除LDSGameMaster如何删除LDSGameMaster背景介绍方法一方法二背景介绍最近不小心下载安装了鲁大师,卸载之后,C盘中仍有一个名为LDSGameMaster的文件夹。虽然很小,之后18M,但是一定要删除掉,否则心里很不舒服。方法一百度告诉我,解决这个问题很简单。这个文件夹中有个uninstall,运行之后就没有了。但我没有发现我的文件夹中有这么一个东西。这个方法不提。方法二删除之后,提示:操作无法…

  • 十二、Maven项目模板「建议收藏」

    十二、Maven项目模板「建议收藏」Maven提供用户,使用原型的概念,不同类型的项目模板(以数字614)是一个非常大的列表。Maven帮助用户快速开始使用以下命令创建新的Java项目mvnarchetype:generate什么是原型?原型是一个Maven插件,其任务是创建一个项目结构按照其模板。我们将使用快速启动原型插件在这里创建一个简单的Java应用程序。使用项目模板让我们打开命令控制

发表回复

您的电子邮箱地址不会被公开。

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