欢迎访问宙启技术站
智能推送

Python实现的Zip文件加密工具

发布时间:2023-12-12 18:52:41

Python提供了一个内置的zipfile模块,可以用来创建、读取和修改zip文件。在zip文件中存储的文件可以加密以保护其内容,只有知道密码的人才能解密和访问文件。

下面是一个使用Python实现的Zip文件加密工具的示例代码:

import zipfile

def encrypt_zipfile(input_file, output_file, password):
    # 创建一个新的加密的zip文件
    with zipfile.ZipFile(output_file, "w", zipfile.ZIP_DEFLATED) as zf:
        # 设置zip文件的密码
        zf.setpassword(password)
        
        # 将输入文件添加到zip文件中
        zf.write(input_file)

def decrypt_zipfile(input_file, output_folder, password):
    # 打开一个加密的zip文件
    with zipfile.ZipFile(input_file, 'r') as zf:
        # 校验密码是否正确
        if zf.setpassword(password) is None:
            # 解压zip文件到指定的文件夹
            zf.extractall(output_folder)
            print("解密成功!")
        else:
            print("密码错误!")

# 加密zip文件
input_file = "data.txt"  # 要加密的文件名
output_file = "encrypted.zip"  # 加密后的zip文件名
password = "123456"  # 加密密码
encrypt_zipfile(input_file, output_file, password)

# 解密zip文件
input_file = "encrypted.zip"  # 加密的zip文件名
output_folder = "output"  # 解压缩后的文件夹名
password = "123456"  # 解密密码
decrypt_zipfile(input_file, output_folder, password)

在这个示例中,encrypt_zipfile函数用来加密一个指定的文件,decrypt_zipfile函数用来解密一个加密的zip文件并将其内容解压缩到指定的文件夹。您需要将要加密的文件名、加密后的zip文件名、加密密码以及解密后的文件夹名作为参数传递给这些函数。

注意事项:

- 加密zip文件的密码应该是足够强大的,以保护文件的内容安全。

- 加密zip文件时,如果指定的输出文件已经存在,则会被覆盖。

- 解密zip文件时,如果指定的输出文件夹已经存在,则会将解压缩的文件覆盖原有的文件。

- 使用zipfile模块创建的加密zip文件可以使用标准的zip文件工具进行解压缩。

请注意在实际使用中,应该根据您的具体需求和情况对代码进行适当调整和改进。