def pojie_zip(FilePath,PwdPath):
zipFile = zipfile.ZipFile(FilePath , 'r' , zipfile.ZIP_DEFLATED)
passFile = open ( PwdPath ,'r' )
file = zipFile.namelist()
for pwd in passFile.readlines():
Pwds = pwd.rstrip('\n')
Bpwd=Pwds.encode("utf-8") #转换编码
try:
zipFile.extractall('F:/None',None,Bpwd)
for file in zipFile.namelist():
zipFile.extract(file , r'F:/None' , Bpwd)
print( "" )
zipFile.close()
break except:
pass passFile.close()
zipFile.close() if __name__== '__main__' :
pojie_zip( 'F:/test.zip' , 'F:/pwd.txt' )

/******************** 总结  **********************/

先说 File 文件

zipFile  =  zipfile.ZipFile(FilePath  ,  'r'  ,  zipfile.ZIP_DEFLATED)

打开一个文件,并返回这个对象;

FilePath:打开文件的路径

’r‘:说明打开的方式 (这里是只读形式)

zipfile.ZIP_DEFLATED: 是说压缩编写的方式(具体api介绍)

 passFile = open  (  PwdPath  ,'r' )

打开一个文件,并返回这文件对象;

PwdPath:打开的文件路径

’r‘:说明是只读方式

 file = zipFile.namelist( )

返回打开的zip包内的所有文件名,包括目录下的文件名,返回类型<class 'list'>类型的字符串

passFile.readlines( ):

返回文件的一行内容,返回类型 <class 'str'> 类型的字符串

Pwds = pwd.rstrip('\n')

rstrip(char) 默认去除字符串后面的空格,这里是要求去除 \n ,这个函数是 python 3版本以上使用

python 2版本为  strip(char) 没有前面的 r。 因为是pwd是<class 'str'>类型 所有 Pwds也是这个类型的字符串

 Bpwd=Pwds.encode("utf-8")   #转换编码

这个方法是将<class 'str'>类型 转换为 <class 'tybe'>类型,如果不转换 则下个函数无法使用Bpwd变量

  zipFile.extractall('F:/None',None,Bpwd)

文件对象调用 extractall()函数来解压 zip 文件,解压所有文件

参数1:是将解压的文件保存在哪里或哪个文件夹下面,参数类型<class ,'str'>

参数2:是要解压的具体文件,这里None是让它默认解压所有文件

参数3:是解压需要的密码,这个密码需要 <class 'type'> 类型的字符串,这里有两种方法可以使用这个类型 第一种是  b"123" 加前缀 b ,第二中就是使用上面的函数将变量转换为这个类型。

  zipFile.extract(file  ,  r'F:/None'  , Bpwd)

和上面的函数一样,只不过是解压单个文件,参数的位置不同

参数1:需要解压的文件名,参数类型<class ,'str'>

参数2:需要解压完存放的地方,参数类型<class ,'str'>

参数3:解压时需要的密码,这里的密码也是需要 <class 'type'>类型的字符串,两种方法同上

    passFile.close()

    zipFile.close()

两个对象都是调用关闭 io 的方法

总结: 写的时候没怎么思考,对函数的理解不太彻底,在运行报错的时候总是不管不顾的百度去搜索,找到后复制粘贴就不了了之了,这个破解里卡的最厉害的部分就是  zipFile.extractall('F:/None',None,Bpwd) 这个函数的参数都需要什么类型,我一开始没不知道,所以运行时总是报错,要不就是解压出来后文件夹目录是空的,直到最后想起别人的提醒,才慢慢的向参数类型这方面的查找,最后找了半天总算是找到了。总结你对一个函数要了解透彻,不然运行报错你都不知道错在哪里。

解决问题的网址:

开始是想字符串转数字的思路:

第一个是字符串与数值的转换:

http://blog.163.com/liuyuhuan0915@126/blog/static/782654482011413114712117/

s = string.atoi( ' 18 ' ,  16)

(即'18'为16进制数的字符串,转换为对应的10进制整数形式)

通过查 api 知道了这个 转换时在 python 2 版本就被抛弃了得,所以不能用。其中还一些和它同等类的函数一样是被抛弃的

string.atof(s) 浮点数转换

第二是通过切片查找转换类型:

https://segmentfault.com/q/1010000002620209

   def find(s):
for i in range(len(s)):
if not ''<=s[i]<='':
return i
return len(s)
s = '234jdsf23232ks'
idx = find(s)
t = int(s[ 0 :idx])

但是 通过 type(t) 的出的类型是 <class 'int'>类型  显然这不是我需要的 <class 'byte'>的类型

后来通过找 api 才知道 这个 <class 'byte'> 类型是 Unicode 编码格式,所以我想是不是可以通过自定义编码格式改它的类型,最终在这个网站上找到了修改字符串编码格式的函数

http://www.runoob.com/python3/python3-string.html

字典破解zip的更多相关文章

  1. 最详细Python批量字典暴力破解zip密码

    工具破解 前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具 苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法 密码字典 巧的是破解的三个 ...

  2. 破解ZIP加密文件密码fcrackzip

    破解ZIP加密文件密码fcrackzip ZIP是最常见的文件压缩方式.由于其压缩算法开源,主流操作系统都支持这种压缩算法.ZIP压缩方式支持密码加密.加密的时候会在文件头部保存密钥相关信息.利用这个 ...

  3. 为steghide实现字典破解功能

    steghide是一个隐写术软件,可以在图片.音频等文件里隐藏数据. 鉴于原始的steghide在解密数据时不能选择字典文件破解,于是本人就用python简单地为其实现字典破解功能. -------- ...

  4. 破解Zip加密文件常用的几种方法

    前言 在互联网的浪潮中,大家也许碰到过这种情况: 从网络上下载了一个zip文件,最后却发现它是用密码保护的,或者自己用密码加密了一个很重要zip文件,但是一段时间后忘记了密码,无法打开.这个时候,我们 ...

  5. 暴力破解ZIP文件密码

    Python 的标准库提供了 ZIP 文件的提取压缩模块 zipfile,现在让我们试着用这个模块,暴力破解出加密的 ZIP 文件!我们可以用 extractall()这个函数抽取文件,密码正确则返回 ...

  6. 破解 zip 压缩包程序

    目录 项目文件结构 代码实现过程 演示效果 代码地址如下:http://www.demodashi.com/demo/12021.html 项目文件结构 在当前目录有三个文件: 3-zipCrack. ...

  7. mac电脑下使用fcrackzip破解zip压缩文件密码

    fcrackzip简介 fcrackzip是一款专门破解zip类型压缩文件密码的工具,工具小巧方便.破解速度快,能使用字典和指定字符集破解,适用于linux.mac osx 系统 fcrackzip安 ...

  8. kali 使用John破解zip压缩包的密码

    kali  使用John破解zip压缩包的密码 准备工具: zip压缩包带密码   1个 kali Linux机器       1个 操作步骤: 首先将压缩包上传至kali机器,然后使用zip2joh ...

  9. 【pyhon】黑客用字典暴力破解Zip文件密码原理性展示

    基本原理:用程序把字典文件里拟定好的密码一个个提取出来,去测试zip能否打开 字典文件pass.txt内容: 1224 2121 asdf abcd1234 dwsdsd dssds 程序代码: # ...

随机推荐

  1. TOCContro控件

    TOCControl控件使用的是用伙伴控件中的数据地图,它控制图层是否在伙伴控件空显示以及和伙伴控件在符号上保持一致,TOCControl为用户提供了一个交互式的环境,如果TOCControl控件的伙 ...

  2. C#平衡树(AVLTree)

    参考:http://www.cnblogs.com/skywang12345/p/3577479.html using System; using System.Collections.Generic ...

  3. UIButton 关灯小实验

    // 写在继承于UIViewController的子类中:创建单视图默认有ViewController类 // 实现:点击任何一颗UIButton,它四周的以及它自身都被变成红色,再点击就会变成原来的 ...

  4. (简单) POJ 1062 昂贵的聘礼,Dijkstra。

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家 拿不出这么多金币,便请求酋长降 ...

  5. [即时通讯]openfire启动失败解决办法

    当你发现你的电脑上的openfire无论你是重新安装还是重启都无法启动的情况下你可以按照我下面写的那些终端指令来启动你的openfire不用再去重新做你的系统了. 一般你发现你的openfire打开出 ...

  6. JAVA基础--工厂模式

    interface Fruit{ // 定义一个水果接口 public void eat() ; // 吃水果 } class Apple implements Fruit{ public void ...

  7. opencv图像特征检测之斑点检测

    前面说过,图像特征点检测包括角点和斑点,今天来说说斑点,斑点是指二维图像中和周围颜色有颜色差异和灰度差异的区域,因为斑点代表的是一个区域,所以其相对于单纯的角点,具有更好的稳定性和更好的抗干扰能力. ...

  8. IOS开发中重写init方法使用需谨慎

    IOS开发中重写init方法使用需谨慎 今天在写一个小软件的时候出现一点问题,这个软件的功能是搜索全国学校,首页就是搜索输入框,在框中输入完要查询的学校所在省份,点击buttom后就会跳转到对应的视图 ...

  9. Mac上ssh无法登录的问题

    今天起来发现阿里云ssh无法登录了 出现一条警告: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 开始打算清理know_hosts发现失败,清了根本 ...

  10. ajax原理图解

    Ajax 原理图解 摘自: http://www.nowamagic.net/ajax/ajax_PicForAjaxPrinciple.php Ajax其实已经使用很久了,但一直也没有时间正经的找本 ...