程序员用 Python 破解同事的加密压缩包!不小心知道了……
图书+视频+源代码+答疑群,一本书带你入Python
作者 | 朱小五
本文经授权转载自凹凸玩数据(ID:alltodata)
又是一杯奶茶。
事情的经过是这样的:
又是奶茶,行吧行吧。
快点开工,争取李大伟回来之前搞定。
李大伟说是6位数字密码
那么我们可以利用python生成全部的六位数字密码
#生成从000000到99999的密码表f = open('passdict.txt','w')for id in range(1000000): password = str(id).zfill(6)+'' f.write(password)f.close()
这样,我们就生成了一个从000000到99999的密码表。
并把它们存入到 passdict.txt 的文件中。
6位的密码表就这么大!!!
下一步做什么?
自然是将生成的密码表中的密码遍历,
暴力破解啦!
科普时间:
zipFile模块式Python自带的模块,提供了对zip 文件的创建,读,写,追加,解压以及列出文件列表的操作
解压使用extractll方法extractall(path=None, members=None, pwd=None)
path:指定解压后文件的位置
members:(可选)指定要Zip文件中要解压的文件,这个文件名称必须是通过namelist()方法返回列表的子集
pwd:指定Zip文件的解压密码
那么我们可以利用 zipFile 模块来遍历密码表,
挨个挨个密码尝试,看能不能打开压缩包。
直到成功。
导入zipFile
import zipfile
def extractFile(zipFile, password): try: zipFile.extractall(pwd= bytes(password, "utf8" )) print("李大伟的压缩包密码是" + password) #破解成功 except: pass #失败,就跳过
def main(): zipFile = zipfile.ZipFile('李大伟.zip') PwdLists = open('passdict.txt') #读入所有密码 for line in PwdLists.readlines(): #挨个挨个的写入密码 Pwd = line.strip('') guess = extractFile(zipFile, Pwd)
if __name__ == '__main__': main()
花了不到一分钟
成功解出密码是:
收工√
趁着李大伟还没回来,
多说两句。
李大伟设置的只是6位数字的密码,
所以本次只要单线程暴力遍历就ok了。
那如果更多位数,
字母数字特殊字符混合的复杂密码呢?
我们可以应用多线程进程解压,加快速度
网络上还有一些暴力破解字典,
可以下载用来遍历
感兴趣的朋友们不妨试试。
大伟回来了。
我告诉他密码就是压缩包当天的日期。
李大伟表示:20191119他已经试过了。
然而这个压缩包的压缩时间是前一天20191118啊。
你口口声声说用当天日期,拿今天1119试什么试?
不过奶茶真好喝~
相关破解源码和李大伟压缩包已上传github:https://github.com/zpw1995/aotodata/tree/master/interest/zip
作者:朱小五,互联网公司数据分析师。热衷于Python爬虫,数据分析,可视化,个人公众号《凹凸玩数据》,有趣的不像个技术号~
热 文 推 荐
☞当今流行技术,SQL、Java、Python、C++ 皆上榜,它的表现最惊艳!
☞1949-2019,70 年 50 种不同编程语言的“Hello World”大盘点!
☞程序员有哪些接私活渠道?| 程序员有话说
☞自学编程、玩 vlog,90 后程序员们的冠军之路
☞【经典必看】14个实用的数据库设计技巧
☞贾扬清:为什么说数据智能和云原生之间是“天作之合”?
☞大白话讲解比特币白皮书,十年后它依然是学习区块链的最佳资料,你真的读懂了吗?
你点的每个“在看”,我都认真当成了喜欢
程序员用 Python 破解同事的加密压缩包!不小心知道了……相关推荐
- 程序员利用Python破解老婆撤回的消息,这样竟然还有老婆?
文章背景: 闲来无事,在街上吃了些零食并用微信付款.不得不说程序员的思维和别人的是真不同,我想的却是微信真强大,稍微查看了一下,还有许多的小程序,很多大企业都在与它合作.这些还不是最重要的,关键是看到 ...
- python多线程破解压缩包_我用 Python 破解了同事的加密压缩包!
原标题:我用 Python 破解了同事的加密压缩包! 作者 | 朱小五 又是一杯奶茶. 事情的经过是这样的: 又是奶茶,行吧行吧. 快点开工,争取李大伟回来之前搞定. 李大伟说是6位数字密码 那么我们 ...
- 20年无人能破的RSA算法发明人出的密码学难题, 竟被这个无名程序员3年破解!...
来源 | WIRED 编译 | Guoxi 责编 | Aholiab 出品 | 区块链大本营(blockchain_camp) 1994 年 4 月,作为麻省理工学院计算机科学实验室成立 35 周年的 ...
- 30岁自学python找工作-程序员自学Python开发,20到30岁几乎决定了你的未来!
原标题:程序员自学Python开发,20到30岁几乎决定了你的未来! 之前程序员界流行一句话:人生苦短,请用Python. 随着Python成为网红语言之后,不少程序员想多学这一门语言好傍身. 甚至有 ...
- python程序员发展-2018年,程序员对Python有着这些期待!
[IT168 评论]自1991年首次发布以来,Python的普及程度已经大大提高,现在已经跻身在世界上最流行的编程语言之列,战胜了那些声明速度太慢或无法扩展的语言. 事实上,最近PayPal,Inst ...
- python程序员一天写多少行代码-程序员写Python时的5个坏习惯,你有几条?
很多文章都有介绍怎么写好 Python,我今天呢,相反,说说写代码时的几个坏习惯.有的习惯会让 Bug 变得隐蔽难以追踪,当然,也有的并没有错误,只是个人觉得不够优雅. 注意:示例代码在 Python ...
- python3入门与进阶笔记_16_变量进阶 — 黑马程序员《Python入门教程完整版》笔记...
变量进阶(理解) - 黑马程序员<Python入门教程完整版>笔记 目标变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用变量 和 数据 都是保存在 内存 中的 在 Py ...
- python 入门程序_非Python程序员的Python速成课程-如何快速入门
python 入门程序 This article is for people who already have experience in programming and want to learn ...
- java min 函数的使用方法_【Python】Java程序员学习Python(五)— 函数的定义和使用...
不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...
最新文章
- 第十六届全国大学生智能汽车竞赛 英飞凌芯片申请情况
- 存储在icloud云盘文件夹顶层_苹果iCloud使用技巧:去弹窗~
- 角谷定理python每次输出数_角谷定理C++递归问题,求问步数为什么总输出0?
- 01: MySql简介
- 10-多写一个@Autowired导致程序崩了
- c语言数字灵活多变的访问形式_学习C语言你必须知道的事儿!
- 微信开发第7章 通过accesstoken获取用户黑名单列表
- 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp
- 文件和目录(一)--unix环境高级编程
- 密码学系列之:PEM和PKCS7,PKCS8,PKCS12
- 【集合论】集合概念与关系 ( 真子集 | 空集 | 全集 | 幂集 | 集合元素个数 | 求幂集步骤 )
- 聊一聊在Airtest自动化中如何清除iOS后台应用
- 计算机密码忘记旗舰版7,台式电脑win7旗舰版忘了开机密码怎么办?
- 《遥远的救世主》遵守客观规律(五)——文化属性
- 行高line-height,以及基线、顶线、中线和底线,还有内容区域、行内框和行框 by 豆豆猫的窝...
- python mp4 视频格式压缩
- java项目开发实践经验每日总结(2014/2/22)
- python删除图片_python小应用之删光你的珍藏图片
- 【目标检测】YOLO v5 吸烟行为识别检测
- 【181118】VC++ CStatic文字滚动源代码
热门文章
- 犀牛6.0grasshopper翻译插件_Grasshopper黏菌生长模拟
- MTL-FFDET:基于多任务学习的森林火灾探测模型
- ROS python3使用cv_bridge报错,在melodic中使用python3 cv_bridge
- 恢复计算机在哪,电脑360文件恢复工具在哪
- 知乎申请B乎商标,这一波算自黑吗
- RecyclerView分割线
- 究极聚合,效率翻倍——CSDN浏览器助手体验测评
- 阐述在html文档中html,行间距在哪里设置?
- 树莓派摄像头读出来的数据是黑的!!(使用c++版qt5的opencv读取摄像头)
- android+点击屏幕隐藏键盘,Android 显示和隐藏软键盘的方法(手动)