当前位置:首页 > 技术分享 > 正文内容

python调用WinRAR暴力获取压缩密码 用网址做解压密码

admin3年前 (2021-04-17)技术分享2614

原理很简单:python通过调用WinRAR.exe暴力获取压缩密码,要求必须安装WinRAR或者有WinRAR.exe这个文件(单个文件就行)。个人实测zip和rar格式都能用。

缺点:费时间,费cpu

一、不生成密码本:
4位全数字密码:

import os
import time
def Jy():
    print('开始破解:')
    for i in range(10000):
        myStr=str(i).zfill(4)#生成压缩包密码
        #这里修改WinRAR.exe所在路径、压缩包路径和解压目录(C:\Program Files (x86)\WinRAR\WinRAR.exe、52pojie.rar、52pojie)
        jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr
        if os.system(jy)==0:
            print('密码正确!',myStr)
            ent=time.time()
            print('破解成功!用时%f分'%((ent-stm)/60))
            return
        else:
            print('密码错误:',myStr)
    ent=time.time()
    print('破解失败,用时%f分'%((ent-stm)/60))
stm=time.time()
if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立
    os.mkdir('52pojie')
    Jy()
else:#存在则进行下一步
    Jy()


4位数字字母密码:多几位就是把下面多复制几遍而已

import os
import time
def Jy():
    print('开始破解:')
    for a in range(len(str)):
        for b in range(len(str)):
            for c in range(len(str)):
                for d in range(len(str)):
                    myStr=str[a]+str[b]+str[c]+str[d]#生成压缩包密码
                    #这里修改WinRAR.exe所在路径、压缩包路径和解压目录(C:\Program Files (x86)\WinRAR\WinRAR.exe、52pojie.rar、52pojie)
                    jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr
                    if os.system(jy)==0:
                        print('密码正确!',myStr)
                        ent=time.time()
                        print('破解成功!用时%f分'%((ent-stm)/60))
                        return
                    else:
                        print('密码错误:',myStr)
    ent=time.time()
    print('破解失败,用时%f分'%((ent-stm)/60))
stm=time.time()
str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'#这里加上你想要的字符
if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立
    os.mkdir('52pojie')
    Jy()
else:#存在则进行下一步
    Jy()


二、生成密码本,然后破解:多几位就是把下面多复制几遍而已

import time
stm=time.time()
dic = open('password.txt', 'a')#在当前py文件所在目录生成password.txt文件
str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'#这里加上你想要的字符
for a in range(len(str)):
    for b in range(len(str)):
        for c in range(len(str)):
            for d in range(len(str)):
                pwd=str[a]+str[b]+str[c]+str[d]#生成4位数字字母密码,通过增加/删除for语句并且在这句后面加上/删除相应的str来自定义密码位数
                dic.write(pwd)
                dic.write('\n')
                print('密码正在写入文件:',pwd)
dic.close()
ent = time.time()
print('成功生成密码本!用时%f分'%((ent - stm)/60))
import os
import time
def Jy():
    print('开始破解:')
    for myStr in myfile:
        myStr=myStr.replace('\n','')
        # 这里修改WinRAR.exe所在路径、压缩包路径和解压目录(C:\Program Files (x86)\WinRAR\WinRAR.exe、52pojie.rar、52pojie)
        jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr
        if os.system(jy)==0:
            print('密码正确!',myStr)
            break
        else:
            print('密码错误:',myStr)
    ent=time.time()
    print('用时%f分'%((ent-stm)/60))
stm=time.time()
path='password.txt'
myfile=open(path,'r',errors='ignore')
if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立
    os.mkdir('52pojie')
    Jy()
else:#存在则进行下一步
    Jy()

三随机密码破解 想几位就直接把5改成几就行 下面实例针对用网址做解压密码的实例

import os
import time
import random
def Jy():
    print('开始破解:')
    var = 1
    while var == 1 :
        myStr=''.join(random.sample(str,5))+'.com'#生成压缩包密码
        myStr2='www.'+myStr#生成压缩包密码
        jy=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr
        jy2=r'"C:\Program Files (x86)\WinRAR\WinRAR.exe" -ibck -y x -p%s 52pojie.zip 52pojie'%myStr2
        if os.system(jy)==0 or os.system(jy2)==0:
            print('密码正确!',myStr)
            ent=time.time()
            print('破解成功!用时%f分'%((ent-stm)/60))
            return
        else:
            print('密码错误:',myStr)        
    ent=time.time()
    print('破解失败,用时%f分'%((ent-stm)/60))
stm=time.time()
str='0123456789abcdefghijklmnopqrstuvwxyz'#这里加上你想要的字符
if os.path.exists('52pojie')==False:#判断当前py文件所在目录下是否存在52pojie文件夹,如果没有则建立
    os.mkdir('52pojie')
    Jy()
else:#存在则进行下一步
    Jy()


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:http://blog.bitefu.net/post/160.html

标签: python
分享给朋友:

相关文章

mysql update不支持set子查询更新 的解决办法

mysql update不支持set子查询更新 的解决办法

先看示例:SELECT uin,account,password,create_user_uin_tree FROM sys_user结果:表中的create_user_uin_tree标识该条记录由谁创建。创...

php高效检测远程图片是否存在

php高效检测远程图片是否存在function img_exits($url){     $ch = curl_init();    &...

2021可用的百度网盘高速下载方法分享

2021可用的百度网盘高速下载方法分享

最新可用方法http://blog.bitefu.net/post/163.html方法很简单就是利用网盘直链下载助手【网盘直链下载助手】是一款免费开源获取网盘文件真实下载地址的油猴脚本,基于PCSAPI,支持Windows,Mac,Lin...

PHP AES加解密 (ECB模式/sha1prng算法/PKCS5Padding和PKCS7Padding补码) ECB 模式不需求设置 iv

php7+ 版本/**  * [AesSecurity aes加密,支持PHP7+]  * 算法模式:ECB  * 密钥长度:128  * 补...

PHP和Redis实现在高并发下的抢购及秒杀功能

抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题:一、高并发对数据库产生的压力二、竞争状态下如何解决库存的正确减少("...

PIP 更换国内安装源linux/windows

pip国内的一些镜像  阿里云 http://mirrors.aliyun.com/pypi/simple/   中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/   豆瓣(...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。