用zip加密打包文件

背景: 忘记是什么情况下要干这个了。。。。应该是在用cocos2dx写游戏时候,需要使用动态更新吧,然后压缩和解压文件。。恩。。。记不得具体是啥了

the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )

使用上的是一个叫Minizip的开源项目

相关知识:
CRC32 :CRC校验实用程序库 在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验。

如果没有先创建文件,然后打开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
加密一个zip文件,可以使用Python内置的zipfile库和密码库来实现。以下是一些代码示例: ```python import zipfile import os import tempfile from cryptography.fernet import Fernet def encrypt_zipfile(zipfile_path, password): # 创建临时目录 with tempfile.TemporaryDirectory() as temp_dir: # 解压缩zip文件到临时目录 with zipfile.ZipFile(zipfile_path, 'r') as zip_ref: zip_ref.extractall(temp_dir) # 加密解压缩后的文件 fernet = Fernet(password.encode()) for root, dirs, files in os.walk(temp_dir): for file in files: file_path = os.path.join(root, file) with open(file_path, 'rb') as f: data = f.read() encrypted_data = fernet.encrypt(data) with open(file_path, 'wb') as f: f.write(encrypted_data) # 创建加密后的zip文件 with zipfile.ZipFile(zipfile_path[:-4] + '_encrypted.zip', 'w', zipfile.ZIP_DEFLATED) as zip_ref: for root, dirs, files in os.walk(temp_dir): for file in files: file_path = os.path.join(root, file) zip_ref.write(file_path, os.path.relpath(file_path, temp_dir)) print('Zip file encrypted successfully') def decrypt_zipfile(zipfile_path, password): # 创建临时目录 with tempfile.TemporaryDirectory() as temp_dir: # 解压缩加密zip文件到临时目录 with zipfile.ZipFile(zipfile_path, 'r') as zip_ref: zip_ref.extractall(temp_dir) # 解密解压缩后的文件 fernet = Fernet(password.encode()) for root, dirs, files in os.walk(temp_dir): for file in files: file_path = os.path.join(root, file) with open(file_path, 'rb') as f: data = f.read() decrypted_data = fernet.decrypt(data) with open(file_path, 'wb') as f: f.write(decrypted_data) # 创建解密后的zip文件 with zipfile.ZipFile(zipfile_path[:-16] + '_decrypted.zip', 'w', zipfile.ZIP_DEFLATED) as zip_ref: for root, dirs, files in os.walk(temp_dir): for file in files: file_path = os.path.join(root, file) zip_ref.write(file_path, os.path.relpath(file_path, temp_dir)) print('Zip file decrypted successfully') # 加密zip文件 zipfile_path = 'myzipfile.zip' password = 'mypassword' encrypt_zipfile(zipfile_path, password) # 解密zip文件 zipfile_path = 'myzipfile_encrypted.zip' password = 'mypassword' decrypt_zipfile(zipfile_path, password) ``` 在上面的代码中,我们使用了Python内置的zipfile库来处理zip文件,并使用密码库cryptography中的Fernet类来加密和解密文件。首先,我们定义了两个函数:encrypt_zipfile和decrypt_zipfile,分别用于加密和解密zip文件。接着,我们定义了一个zip文件路径变量和一个密码变量,用于指定要加密zip文件和密码。在加密zip文件的函数中,我们使用了tempfile库创建了一个临时目录,并将zip文件解压缩到该目录中。然后,我们使用Fernet类加密解压缩后的文件,最后将加密后的文件重新打包成一个新的zip文件。在解密zip文件的函数中,我们也是先将加密zip文件解压缩到临时目录中,然后使用Fernet类解密解压缩后的文件,最后将解密后的文件重新打包成一个新的zip文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值