python小练习----破解密码小程序

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值