当前位置: 首页 > 知识库问答 >
问题:

用Python[duplicate]解密AES加密的ZIP文件

贺跃
2023-03-14

我需要设置一个Python进程,它能够获取特定文件夹中的每个ZIP文件,并将其解压缩,以便访问和处理其中的数据。提供ZIP文件的人显然使用Java例程来实现这一点,但由于我不懂Java(甚至不懂密码学),所以我想使用Python。他们给了我:

  • 一个密码
  • 一个初始化向量

他们还指定使用这种类型的命令行:openssl enc-d-aes-128-cbc-K XXXXXX-iv YYYYYYYYY-in in。拉上拉链。邮政编码

其中,我尝试了以下脚本,但:

  • 它不使用初始化向量
    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')

我找不到任何适用于我的文件的解决方案,所以:

  • 你认为用python可以做到这一点吗

谢谢。


共有1个答案

海景曜
2023-03-14

谢谢你的帮助。实际上,我放弃了使用pycrypto,而是使用了subprocess。如果它将来对任何人都有用的话,下面是我用来解压dico_zipfilename中包含名称的文件的解决方案。这些ZipFile都是通过128-AES加密的,带有一个已知的密钥和iv。在此之前,我下载了openssl,Opensslexe_路径是指向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)

这对我来说已经解决了:)

 类似资料:
  • 我想在python的cbc模式下使用aes 128对文件(任何类型的文件)进行加密和解密。 我对密码学很陌生,我也尝试过一些教程,但都只对文本有效,我需要它来存储文件。 谁能给我一个解决方案吗?

  • 我写这个问题的答案是因为我挣扎了很多(可能是因为缺乏经验),迷失在许多不同的加密/解密节点或Python的方法中。 我想也许我的案子能在将来帮助人们。 我需要做的是: 从表单中获取数据,使用加密(node js)对其进行加密。 我选择使用AES加密。 我是这样开始的(我不会经历我尝试过的一切): > 我遵循了本页末尾的例子 在我的案例中给出: 这可能是javascript和coffeescript

  • 我试图在Android和PHP端使用AES加密/解密数据,并累犯空答案。 首先,我在Android中生成了对称密钥: 在服务器端,我试图解密数据。我可以解密(从RSA)秘密的AES密钥,并得到它的字符串表示。在客户端(Android)和服务器端(PHP)上是一样的。但是如何使用这个字符串AES密钥来解密数据呢?我尝试了这个(PHP): PHP中的结果: 怎么啦?

  • 我正在尝试用AES加密一个大文件,然后解密,与原件进行比较。 这堂课总结了工作。它适用于.txt文件,但不适用于.mp3、.pdf等文件。 我们将非常感谢你的帮助。

  • OpenSSL提供了一个流行的(但不安全-请参见下面!)AES加密的命令行界面: Python以PyCrypto包的形式支持AES,但它只提供了工具。如何使用Python/Pycrypto解密已经使用OpenSSL加密的文件? 这个问题过去也涉及使用相同方案在Python中进行加密。我已经删除了这部分,以阻止任何人使用它。不要再用这种方式加密任何数据,因为按照今天的标准,它是不安全的。您应该只使用