鱼C论坛

 找回密码
 立即注册
查看: 1289|回复: 9

[已解决]【新手求助】关于使用pyhon暴力破解zip压缩包密码

[复制链接]
发表于 2022-5-12 07:33:49 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
https://m.jb51.net/article/197406.htm
原帖子

这三句我没看懂

    zipFile.extractall(pwd= bytes(password, "utf8" ))
for line in PwdLists.readlines():  #挨个挨个的写入密码
    Pwd = line.strip('\n')
  
if __name__ == '__main__':
  main()

第一句为什么使用bytes函数?为什么编码是utf8?
第二句是如何实现逐行阅读的?
第三句中的_name_和_main_来自于哪里?

谢谢!
最佳答案
2022-5-12 07:33:50
第一句为什么使用bytes函数?为什么编码是utf8?


这里不太熟悉这个模块,但是 bytes 函数是将文本数据转换成对应的二进制数据,这里 utf8 就是采用 utf-8 的编码转换为二进制数据,应该是和文件编码保持一致

第二句是如何实现逐行阅读的?

对文件对象进行 for 循环遍历,默认就是逐行阅读,但是这里是对 PwdLists.readlines() 进行遍历

因为 readlines() 函数是读取文本的一行内容,所以这儿就是将 PwdLists 文件对象读取一行后,对这行的文本内容进行逐个遍历

第三句中的_name_和_main_来自于哪里?


__name__ 是 Python 的全局属性,这里最后代码的作用是:

当这个脚本作为主程序运行时候,会运行 if __name__ == "__main__": 下面的代码块

当这个脚本当作模块导入时候,将不调用 if __name__ == "__main__": 下面的代码块

这里的 main() 如果再正常情况下运行,而没有拿去导入模块,可以把这个代码的 if __name__ == "__main__": 去掉无妨
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-12 07:33:50 | 显示全部楼层    本楼为最佳答案   
第一句为什么使用bytes函数?为什么编码是utf8?


这里不太熟悉这个模块,但是 bytes 函数是将文本数据转换成对应的二进制数据,这里 utf8 就是采用 utf-8 的编码转换为二进制数据,应该是和文件编码保持一致

第二句是如何实现逐行阅读的?

对文件对象进行 for 循环遍历,默认就是逐行阅读,但是这里是对 PwdLists.readlines() 进行遍历

因为 readlines() 函数是读取文本的一行内容,所以这儿就是将 PwdLists 文件对象读取一行后,对这行的文本内容进行逐个遍历

第三句中的_name_和_main_来自于哪里?


__name__ 是 Python 的全局属性,这里最后代码的作用是:

当这个脚本作为主程序运行时候,会运行 if __name__ == "__main__": 下面的代码块

当这个脚本当作模块导入时候,将不调用 if __name__ == "__main__": 下面的代码块

这里的 main() 如果再正常情况下运行,而没有拿去导入模块,可以把这个代码的 if __name__ == "__main__": 去掉无妨
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-12 10:04:09 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2022-5-12 09:50
这里不太熟悉这个模块,但是 bytes 函数是将文本数据转换成对应的二进制数据,这里 utf8 就是采用 utf- ...

谢谢,明白了,但是`_main_`是从哪来的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-12 10:08:04 From FishC Mobile | 显示全部楼层
还有为什么要用bytes函数让文件编码保持一致?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-12 10:08:35 | 显示全部楼层
lzymm1 发表于 2022-5-12 10:04
谢谢,明白了,但是`_main_`是从哪来的?



就是 __name__ 属性值,'__main__' 表示当前运行模块

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-12 10:31:49 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2022-5-12 10:08
就是 __name__ 属性值,'__main__' 表示当前运行模块

哦哦,为什么要用bytes函数让文件编码保持一致?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-12 10:36:40 | 显示全部楼层
lzymm1 发表于 2022-5-12 10:31
哦哦,为什么要用bytes函数让文件编码保持一致?



文件编码不同,其字节大小也很可能不同,编码不同会导致编码错误、乱码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-12 10:37:37 From FishC Mobile | 显示全部楼层
lzymm1 发表于 2022-5-12 10:31
哦哦,为什么要用bytes函数让文件编码保持一致?

猜:   模块方法要求必须传bytes类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-12 10:52:41 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2022-5-12 10:36
文件编码不同,其字节大小也很可能不同,编码不同会导致编码错误、乱码

明白了谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-12 18:02:36 From FishC Mobile | 显示全部楼层
本帖最后由 lzymm1 于 2022-5-12 18:21 编辑

w
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 08:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表