Hướng dẫn python zip file with password - tệp zip python với mật khẩu

Nó không được đề cập trong tài liệu, nhưng trên Python 3, mật khẩu phải là bytes, không phải str. Vì thế:

zf.setpassword(b"1234")

Lưu ý rằng mật khẩu chỉ được sử dụng để đọc, không viết! Xem DocString cho ZipFile.open trong Python 3.

Lớp ZipFile có thể đọc mã hóa "PKZIP 2.0", không được coi là rất mạnh (nó đã biết điểm yếu [PDF]). Đó có thể là lý do mà việc viết chúng hiện không (như Python 2.7.13 và 3.6) được thực hiện trong Python.

Lưu ý: Việc bảo vệ có được bằng mật khẩu trên zipfile có thể không mạnh lắm, tùy thuộc vào những gì bạn muốn sử dụng. Một kẻ tấn công có thể, ví dụ: Thay thế một mục được bảo vệ bằng mật khẩu trong một zipfile mà không biết mật khẩu! Xem ví dụ: Câu trả lời này về bảo mật.stackexchange.

Note2: Các phiên bản gần đây hơn của E.G. Winzip có thể sử dụng AES để mã hóa nội dung của các tệp bị nén. Afaik, Python không thể đọc chúng.

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luậnpyminizip module from python.

    Installation:

    ZIP là một định dạng tệp lưu trữ hỗ trợ nén dữ liệu không mất. Bằng cách nén không mất, chúng tôi có nghĩa là thuật toán nén cho phép dữ liệu gốc được xây dựng lại hoàn hảo từ dữ liệu được nén. Vì vậy, một tệp zip là một tệp duy nhất chứa một hoặc nhiều tệp nén, cung cấp một cách lý tưởng để tạo các tệp lớn nhỏ hơn và giữ các tệp liên quan lại với nhau.The pyminizip module can be installed using the below command:

    pip install pyminizip

    Trong bài viết này, chúng tôi sẽ tìm hiểu cách tạo zip được bảo vệ bằng mật khẩu của một tệp bằng Python. Đối với điều này, chúng tôi đang sử dụng mô -đun pyminizip từ Python.compress() method from pyminizip. So, we discuss first its syntax and arguments.

    Syntax:

    & NBSP; Mô -đun PymInizip có thể được cài đặt bằng lệnh bên dưới:

    Arguments:

    • Để tạo zip, chúng tôi đang sử dụng phương thức nén () từ pyminizip. Vì vậy, chúng tôi thảo luận đầu tiên cú pháp và lập luận của nó.
    • pyminizip.compress (Hồi/srcfile/path.txt ,, file_path_prefix,
    • Đường dẫn tệp SRC (Chuỗi)
    • Đường dẫn tiền tố SRC (chuỗi) hoặc không
    • Đường dẫn tệp DST (chuỗi)
       

    Mật khẩu (chuỗi) hoặc không có (để tạo zip không có thông tin)Always returns None

    Implementation:

    Tệp đầu vào:

    Hướng dẫn python zip file with password - tệp zip python với mật khẩu

    Program:

    Python3

    pip install pyminizip
    0
    pip install pyminizip
    1

    pip install pyminizip
    2
    pip install pyminizip
    3
    pip install pyminizip
    4

    pip install pyminizip
    5
    pip install pyminizip
    3
    pip install pyminizip
    7

    pip install pyminizip
    8
    pip install pyminizip
    3
    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    0

    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    1
    pip install pyminizip
    3
    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    3

    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    4
    pip install pyminizip
    3
    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    6

    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    7
    pip install pyminizip
    7
    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    9

    z.open("LabAccessCodes-TopSecret.txt")
    0
    z.open("LabAccessCodes-TopSecret.txt")
    1

    Output:

    Hướng dẫn python zip file with password - tệp zip python với mật khẩu

    Nhận kiến ​​thức kỹ lưỡng về mô -đun zipfile của Python và xây dựng công cụ bẻ khóa mật khẩu tệp zip của riêng bạn trong vòng chưa đầy 3 phút

    Chào thế giới! Chúng tôi thường nhận được các tệp zip được mã hóa và nó không thể truy xuất các tệp từ nó. Trong bài đăng này, tôi sẽ chia sẻ kiến ​​thức trong khi thảo luận về một tệp zip được bảo vệ trong phòng thí nghiệm CrackingFrom AttackDefense. Tôi sẽ hướng dẫn bạn cách bẻ khóa mô-đun zipfile được vận chuyển trước bằng ngôn ngữ Python.Protected Zip File Crackingfrom AttackDefense. I will guide you on how to crack the password pre-shipped zipfile module in the python language.

    Chúng tôi được cung cấp một kho lưu trữ zip có tên Secret.zip, tất nhiên, mật khẩu được bảo vệ. Mật khẩu được tạo bằng chính sách mật khẩu sau:secret.zip which is of course, password protected. The password is generated using the following password policy:

    • Mật khẩu dài 6 ký tự
    • Mật khẩu chỉ chứa các ký tự từ bộ ký tự & nbsp; {a, b, c, d, e, 1, 2, 3, 4, 5}

    Hãy cố gắng mở zip và liệt kê các tệp. Bạn có thể liệt kê các tên tệp nhưng thực sự, nội dung của nó được mã hóa không phải là các mục trong kho lưu trữ

    from zipfile import ZipFile
    
    z = ZipFile("secret.zip")
    z.printdir()
    Gặp danh sách các mục trong tệp zip
    z.open("LabAccessCodes-TopSecret.txt")
    2

    Như bạn có thể thấy có một tệp

    z.open("LabAccessCodes-TopSecret.txt")
    3. Điều này đã được thêm 4 năm trước và có một số văn bản khi bạn kiểm tra kích thước của nó.

    Hướng dẫn python zip file with password - tệp zip python với mật khẩu

    Ngoài ra, khi bạn sẽ cố gắng mở tệp thông qua mã sau, nó sẽ ném

    z.open("LabAccessCodes-TopSecret.txt")
    4 với một thông báo cho bạn biết rằng mật khẩu là cần thiết để trích xuất tệp này.

    z.open("LabAccessCodes-TopSecret.txt")
    Try để trích xuất tệp trong bộ nhớ và mở nó bằng
    z.open("LabAccessCodes-TopSecret.txt")
    5AS, chúng tôi đã thấy chính sách mật khẩu. Hãy tạo một danh sách từ chứa tất cả các kết hợp có thể bao gồm các ký tự lặp lại. Vì hàm
    z.open("LabAccessCodes-TopSecret.txt")
    6 thiếu chức năng này, chúng tôi sẽ sử dụng hàm
    z.open("LabAccessCodes-TopSecret.txt")
    7 từ mô -đun ITERTOOLS.
    Hướng dẫn python zip file with password - tệp zip python với mật khẩu

    As we have seen the password policy. Let's create a wordlist containing all the possible combinations including repeated characters. Since the

    z.open("LabAccessCodes-TopSecret.txt")
    6 function lacks this functionality, we will use the
    z.open("LabAccessCodes-TopSecret.txt")
    7 function from the itertools module.

    from itertools import product
    from string import ascii_lowercase, digits
    
    CHARSET = ascii_lowercase[:5] + digits[1:6]
    PASSLEN = 0x6
    
    combinations = product(CHARSET, repeat=PASSLEN)
    
    with open("dict.txt", "w") as w:
        for combination in combinations:
            pwd = "".join(combination) + "\n"
            w.write(pwd)
            pass
        pass
    Danh sách từ tạo ra tất cả các kết hợp của mật khẩu bao gồm các ký tự lặp lại

    Nếu bạn nhìn kỹ, bạn có tổng cộng 6 ký tự mật khẩu và 10 ký tự có thể ở mỗi địa điểm. Vì vậy, tổng số mật khẩu có thể cho tệp zip này sẽ là \ (10 ​​^ 6 \) hoặc \ (1.000.000 \) Mật khẩu.

    Hướng dẫn python zip file with password - tệp zip python với mật khẩu
    Danh sách từ được tạo bằng tên
    z.open("LabAccessCodes-TopSecret.txt")
    8

    Vì có rất nhiều mật khẩu, chúng tôi sẽ đọc từng dòng tệp và cố gắng kiểm tra xem mục nhập tệp ZIP LabAccessCodes-topsecret.txt có thể trích xuất bằng mật khẩu từ dòng hiện tại trong tệp Wordlist hay không. Vì vậy, sau đây là mã đơn giản cho điều đó.LabAccessCodes-TopSecret.txt is extractable by the password from the current line in the wordlist file or not. So the following is the simple code for that.

    import sys
    from zipfile import ZipFile, BadZipFile
    from tempfile import mkdtemp
    
    z = ZipFile("secret.zip")
    
    TARGETDIR = mkdtemp()
    
    with open("dict.txt", "rb") as w:
    	for pwd in w:
    		try:
    			pwd = pwd.strip()
    			z.extract("LabAccessCodes-TopSecret.txt", path=TARGETDIR, pwd=pwd)
    			print("\nPassword found: {}. Contents are extracted to {}".format(pwd.decode(), TARGETDIR)) 		
    			break
    		except (RuntimeError, BadZipFile):
    			print("Tried password: {}".format(pwd), end="\r")
    		except Exception as e:
    			print("\nError: {}".format(e))
    			sys.exit(1)
    			
    	else:
    		print("Not password found in the wordlist")
    
    z.close()
    Snippet để tìm mật khẩu chính xác của tệp zip và trích xuất mục
    z.open("LabAccessCodes-TopSecret.txt")
    9 vào thư mục
    from itertools import product
    from string import ascii_lowercase, digits
    
    CHARSET = ascii_lowercase[:5] + digits[1:6]
    PASSLEN = 0x6
    
    combinations = product(CHARSET, repeat=PASSLEN)
    
    with open("dict.txt", "w") as w:
        for combination in combinations:
            pwd = "".join(combination) + "\n"
            w.write(pwd)
            pass
        pass
    0

    Vì vậy, về cơ bản trong mã trên, khi tệp được trích xuất thành công bằng mật khẩu trong

    from itertools import product
    from string import ascii_lowercase, digits
    
    CHARSET = ascii_lowercase[:5] + digits[1:6]
    PASSLEN = 0x6
    
    combinations = product(CHARSET, repeat=PASSLEN)
    
    with open("dict.txt", "w") as w:
        for combination in combinations:
            pwd = "".join(combination) + "\n"
            w.write(pwd)
            pass
        pass
    0, nó sẽ in thông báo "Mật khẩu được tìm thấy .." và thư mục nơi bạn có thể tìm thấy tệp này. Làm thế nào tất cả điều này xảy ra, được trừu tượng hóa bởi mô -đun Python này và nằm ngoài phạm vi cho bài đăng này.

    Khi bạn nhận được mật khẩu chính xác, bạn có thể thấy đầu ra sau và bạn có thể đọc nội dung tệp từ thư mục được trích xuất.

    Hướng dẫn python zip file with password - tệp zip python với mật khẩu
    List the files in the
    from itertools import product
    from string import ascii_lowercase, digits
    
    CHARSET = ascii_lowercase[:5] + digits[1:6]
    PASSLEN = 0x6
    
    combinations = product(CHARSET, repeat=PASSLEN)
    
    with open("dict.txt", "w") as w:
        for combination in combinations:
            pwd = "".join(combination) + "\n"
            w.write(pwd)
            pass
        pass
    2 and reading the extracted file in the directory

    Làm cách nào để mật khẩu bảo vệ một tệp zip trong python?

    Đối với điều này, chúng tôi đang sử dụng mô -đun pyminizip từ Python ...
    Đường dẫn tệp SRC (chuỗi).
    Đường dẫn tiền tố SRC Tệp (chuỗi) hoặc không có (đường dẫn để chuẩn bị cho tệp).
    Đường dẫn tệp DST (chuỗi).
    Mật khẩu (chuỗi) hoặc không có (để tạo zip không có thông tin).
    Compress_Level (int) trong khoảng từ 1 đến 9, 1 (nhanh hơn) 9 (nén nhiều hơn) hoặc 0 (mặc định).

    Làm thế nào để bạn zip một tệp với mật khẩu?

    Nếu bạn đặt các tệp bạn muốn bảo vệ trong tệp zip, thì bạn có thể áp dụng mật khẩu. Trong Windows Explorer, tô sáng và nhấp chuột phải vào các tệp bạn muốn đặt vào một tệp bị kéo dài. Chọn Gửi đến, sau đó thư mục ZIP (nén). Bấm đúp vào tệp zipped, sau đó chọn tệp và thêm mật khẩu.

    Zipfile có được xây dựng trong Python không?

    Python cũng cung cấp một mô-đun cấp cao có tên ZipFile được thiết kế cụ thể để tạo, đọc, ghi, trích xuất và liệt kê nội dung của các tệp zip. specifically designed to create, read, write, extract, and list the content of ZIP files.

    Làm cách nào để zip một tập tin trong Python?

    Tạo một kho lưu trữ zip từ nhiều tệp trong Python Tạo một đối tượng zipfile bằng cách chuyển tên tệp và chế độ mới dưới dạng 'w' (chế độ ghi).Nó sẽ tạo một tệp zip mới và mở nó trong đối tượng zipfile.Chức năng ghi () trên đối tượng ZipFile để thêm các tệp trong đó.Gọi Đóng () trên đối tượng ZipFile để đóng tệp zip.Create a ZipFile object by passing the new file name and mode as 'w' (write mode). It will create a new zip file and open it within ZipFile object. Call write() function on ZipFile object to add the files in it. call close() on ZipFile object to Close the zip file.