我需要设置一个Python进程,该进程能够获取特定文件夹中的每个ZIP文件并解压缩,以便访问和处理其中的数据。 向我提供ZIP文件的人显然是使用Java例程来这样做的,但是由于我不了解Java(甚至不知道密码学),因此我想使用Python。 他们给了我:
他们还指定使用这种类型的命令行:
openssl enc -d -aes-128-cbc -K XXXXXX -iv YYYYYYYYY -in in.zip -out out.zip
除其他外,我尝试了以下脚本,但是:
import pyzipper
Testfile = Local_path + 'Testfile.zip' with
pyzipper.AESZipFile(Testfile) as f:
f.pwd = b'XXXXXXXXXXXXXXXXX'
print(f.infolist())
file_content = f.read('testfile.txt')
我找不到适用于我的文件的任何解决方案,所以:
非常感谢。
答案 0 :(得分:1)
感谢您的帮助。确实,我放弃了使用pycrypto并使用子过程。 如果将来对任何人都有用,这是我用来解压缩名称包含在dico_zipfilename中的文件的解决方案。这些zipfile均通过具有已知密钥和iv的128-AES加密。 在此之前,我下载openssl,Opensslexe_path是openssl.exe的路径。
for i in range(0, len(v_dico_raw)):
Name_zipfile = str(v_dico_raw[i][3])
Path_fileinput = Local_path_zipped + str(Name_zipfile)
Path_fileoutput = Local_path_unzipped + str(Name_zipfile)
cmd_line = ['openssl', 'enc', '-d', '-aes-128-cbc', '-K', str(key), '-iv', str(iv), '-in', str(Path_fileinput), '-out', str(Path_fileoutput)]
p = subprocess.Popen(cmd_line, cwd = Opensslexe_path)
为我解决了:)