Python şifrelenmiş ZIP ​​dosyasını oluşturma

oy
30

Ben Python 2.5 zipfile bir ZIP dosyası oluşturma, Tamam şimdiye kadar çalışır:

import zipfile, os

locfile = test.txt
loczip = os.path.splitext (locfile)[0] + .zip
zip = zipfile.ZipFile (loczip, w)
zip.write (locfile)
zip.close()

ama ZIP dosyası içinde dosyaları şifrelemek için nasıl bulamadık. Ben sistemini kullanan ve -s PKZIP diyoruz, ama ben daha Pythonic yolu olmalı herhalde başladı. Ben bir açık kaynak çözüm arıyorum.

Oluştur 20/08/2008 saat 01:16
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
0

Sen kullanabilirsiniz Chilkat kütüphanesi. Ticari, ama özgür bir değerlendirme vardır ve çok güzel görünüyor.

İşte aldığım bir örnek burada :

import chilkat

# Demonstrates how to create a WinZip-compatible 128-bit AES strong encrypted zip
zip = chilkat.CkZip()
zip.UnlockComponent("anything for 30-day trial")

zip.NewZip("strongEncrypted.zip")

# Set the Encryption property = 4, which indicates WinZip compatible AES encryption.
zip.put_Encryption(4)
# The key length can be 128, 192, or 256.
zip.put_EncryptKeyLength(128)
zip.SetPassword("secret")

zip.AppendFiles("exampleData/*",True)
zip.WriteZip()
Cevap 20/08/2008 saat 02:20
kaynak kullanıcı

oy
14

Python bir şifre şifreli zip dosyası oluşturmak için basit bir kütüphane oluşturdu. - burada

import pyminizip

compression_level = 5 # 1-9
pyminizip.compress("src.txt", "dst.zip", "password", compression_level)

Kütüphane zlib gerektirir.

Ben dosya WINDOWS / MAC hulâsa edilebilir de saptadık.

Cevap 17/04/2013 saat 02:39
kaynak kullanıcı

oy
5

Yinelenen soru https://stackoverflow.com/a/2366917/874188 kullanılmasını önerir 7zyerine zip. Benim deneyim bunu gösteriyor.

Kopya / şeyiyle burada da @JFSebastian tarafından cevap yapıştırarak:

Şifreli zip arşivi (adında oluşturmak için 'myarchive.zip') açık kaynak kullanarak 7-Zipprogramı:

rc = subprocess.call(['7z', 'a', '-pP4$$W0rd', '-y', 'myarchive.zip'] + 
                     ['first_file.txt', 'second.file'])

7-Zip, türü yüklemek için:

$ sudo apt-get install p7zip-full

(ZIP utitity ile uyumluluk göstermek için) elle halletmek için, türü:

$ unzip myarchive.zip

Ve girmek P4$$W0rdisteminde.

Ya 2.6+ Python aynı:

>>> zipfile.ZipFile('myarchive.zip').extractall(pwd='P4$$W0rd')
Cevap 12/12/2014 saat 12:27
kaynak kullanıcı

oy
-1

@ Tripleee cevabı beni aşağıya testimi görmeme sebep oldu.

Bu kod Windows 8.1'de piton 3.5.2 üzerinde benim için çalışıyor ( 7z yol sistemine eklenmiştir).

rc = subprocess.call(['7z', 'a', output_filename + '.zip', '-mx9', '-pSecret^)'] + [src_folder + '/'])

iki parametre ile:

  1. -mx9 maksimum sıkıştırma anlamına gelir
  2. -pSecret^)şifre olduğu anlamına gelir Secret^). ^için kurtulmak, )Windows işletim sistemi için, ama sen halletmek zaman, içinde tip gerekir ^.

Olmadan ^Windows işletim 7Z.exe oluşturarak şifreyi geçerli olmayacaktır zip dosyasını.

Kullanmak istediğiniz Ayrıca, -mheanahtar, sen olmak dosya biçimini gerekir 7z yerine zip .

Bunu yardımcı olabilir umuyoruz.

Cevap 20/10/2016 saat 21:18
kaynak kullanıcı

oy
0

pyminizipBir şifre korumalı bir zip dosyası oluşturma konusunda iyi çalışıyor. unziping için, bazı durumlarda başarısız olur. piton 3.7.3 üzerinde test edilmiştir

Burada, ben dosyayı şifrelemek için pyminizip kullandı.

import pyminizip
compression_level = 5 # 1-9
pyminizip.compress("src.txt",'src', "dst.zip", "password", compression_level)

unzip için, ben zip dosyası modülü kullanıldı:

from zipfile import ZipFile

with ZipFile('/home/paulsteven/dst.zip') as zf:
    zf.extractall(pwd=b'password')
Cevap 08/08/2019 saat 07:47
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more