首先要搞清楚如何用命令行来解压缩,经研究,rar软件解压是用的unrar.exe,将这个程序拷贝到C:\windows,然后进入加密软件包所在的文件夹,用命令行运行 下面的命令:
unrar.exe e -pabcd 123.rar
程序就是先前拷到C:\windows,然后参数e是指相对路径,如果在是本文件夹下运行这个命令,则只打文件名就可以了,输入密码的方式是-p后面的字段,假定是abcd,最后面的是要解压的文件名。
下面我们解决如何用Python来运行windows下的命令行
import subprocess
command = 'unrar.exe e -n -pabcd 123.rar'
subprocess.call(command)
这样也可以完成解压,既然这样,那就开干吧,写一个暴力循环,我以4位字母为例,字母加的不全,实际使用可以视情况添加
list1=['a','b','c','d']
list2=['a','b','c','d']
list3=['a','b','c','d']
list4=['a','b','c','d']
for i1 in range(0,len(list1),1):
for i2 in range(0,len(list2),1):
for i3 in range(0, len(list3), 1):
for i4 in range(0, len(list4), 1):
password=list1[i1]+list2[i2]+list3[i3]+list4[i4]
print(password)
command = 'unrar.exe e -n -p' + password + ' 123.rar'
child = subprocess.call(command)
if child == 0:
print('解压密码是:',password)
break
child是返回值,为0表示解压成功,可以挑出循环并打印密码了,我实测,4位纯数字或者字母,只需要十多秒就出来了,非常简单
本文涉及的 python 基础语法为:列表及其方法
我们发现了一段存在 [ ] 中的谍报密码,为了破解他,我们必须先来学习一下,这个存放着谍报密码的 [ ]
列表是 python 内置的一种序列,其他的序列我们后面会一一介绍
序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是 0,第二个索引是 1,依此类推
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示
上面我们讲到了列表的索引,我们可以通过列表的索引来获取它的元素,示例如下:
列表的切片格式是 list[start:end:step]
start:起始索引,从 0 开始,-1 表示结束
end:结束索引
step:步长,步长为正时,从左向右取值。步长为负时,反向取值
注意切片的结果不包含结束索引,即不包含最后的一位,通常我们称为 左闭右开 , -1 代表列表的最后 一个位置索引
如果我只想要 list1 的前三个元素,该怎么写呢?
假如有一组从 0-10 的列表,我们只想要这个列表里面的所有偶数元素,那么该怎么取值呢?
现在我的手头有这样一份谍报密码,请你按照提示完成密码的破解,下面,让我们来开始吧!
现在请按照上面的提示来破解这封谍报,看看这位它写了什么信息。
问题的中涉及的 python 列表方法都已经在上面的表格里面
破解谍报密码的文件可以打开我的主页获取哦~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)