如何使用Python破解ZIP压缩文件密码

如何使用Python破解ZIP压缩文件密码

如何使用Python破解ZIP压缩文件密码

  ZIP文件格式是一种常见的存档和压缩标准。它用于压缩文件。有时,压缩文件是保密的,所有者不想让每个人都可以访问。因此,zip 文件受密码保护。如果密码很常见,那么它很容易被破解。在这里,我们将使用python暴力方法来破解 zip 文件的密码。

如何使用Python破解ZIP压缩文件密码
如何使用Python破解ZIP压缩文件密码

  在本文中,我们将看到一个 Python 程序,晓得博客为你介绍如何使用Python破解ZIP压缩文件密码。

  推荐:11个流行的Python存储库

Python破解ZIP压缩文件密码方法

  暴力方法是使用一组预定义值来破解密码直到成功的方法。这是一种“命中和尝试”方法。如果值集很高,这种方法可能需要很长时间,但它的成功率很高。值的数量越多,破解密码的机会就越大。在这里,我们将使用大小为 133 MB 的“rockyou”文本文件和超过 1400 万组密码来尝试。在此处下载文本文件。

  • 首先,导入zipfile模块。
  • 初始化 ZipFile 对象,这有助于提取 zip 文件的内容。
  • 计算“rockyou.txt”文件中出现的单词数并将其显示在终端上。
  • 调用“crack_password”函数,如果找到密码则返回true,否则返回false。将文本文件的名称和 ZipFile 对象作为参数传递。
  • idx 变量用于跟踪行号。
  • 以“rb”模式打开文本文件“rockyou.txt”,以二进制形式处理文件内容。这是因为文件包含一些特殊符号,如果文件以“r”模式打开,则无法处理这些特殊符号,并会生成UnicodeDecodeError
  • 打开文件后,从文件中提取该行,然后从中拆分单词。
  • 在 try 块中,通过将密码提供给 extractall 方法的 pwd 字段来提取 zip 文件的内容。extractall()方法会将 zip 文件的所有内容提取到当前工作目录。上面的程序在与这个python脚本相同的目录中提取了一个名为“gfg.zip”的zip文件。
  • 如果密码不正确,则会产生异常。在 except 块中,继续循环以检查文件中的其他单词。
  • 如果找到密码返回真否则最后返回假并显示所需的消息。

  下面是完整的实现:

如何使用Python破解ZIP压缩文件密码
如何使用Python破解ZIP压缩文件密码
import zipfile


def crack_password(password_list, obj):
	# tracking line no. at which password is found
	idx = 0

	# open file in read byte mode only as "rockyou.txt"
	# file contains some special characters and hence
	# UnicodeDecodeError will be generated
	with open(password_list, 'rb') as file:
		for line in file:
			for word in line.split():
				try:
					idx += 1
					obj.extractall(pwd=word)
					print("Password found at line", idx)
					print("Password is", word.decode())
					return True
				except:
					continue
	return False


password_list = "rockyou.txt"

zip_file = "gfg.zip"

# ZipFile object initialised
obj = zipfile.ZipFile(zip_file)

# count of number of words present in file
cnt = len(list(open(password_list, "rb")))

print("There are total", cnt,
	"number of passwords to test")

if crack_password(password_list, obj) == False:
	print("Password not found in this file")

  推荐:使用Python从网页中提取所有URL

  输出:

There are total 14344391 number of passwords to test
Password found at line 27
Password is chocolate

总结

  以上是晓得博客为你介绍的如何使用Python破解ZIP压缩文件密码的全部内容,希望对你的Python学习有帮助,如有问题,可留言探讨。

   推荐:零基础如何开始学习Python

给文章评分

晓得博客,版权所有丨如未注明,均为原创
晓得博客 » 如何使用Python破解ZIP压缩文件密码

转载请保留链接:https://www.pythonthree.com/crack-zip-archive-password-using-python/

Claude、Netflix、Midjourney、Chatgpt Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折

Chatgpt-Plus注册购买共享账号
滚动至顶部