Hiện nay, định dạng .zip là một trong các định dạng nén phổ biến ở trên PC. Quá trình crack password file zip cũng được thực hiện khá đơn giản. Có phần hơi mất thời gian đối với các mật khẩu phức tạp. Ở bài viết, sửa chữa laptop Đà Nẵng Techcare sẽ hướng dẫn cách bẻ khóa file zip online đơn giản bằng Python.
1. Các thư viện cần sử dụng
Thư viện zipfile được sử dụng để xử lí file Zip.
Xem thêm bài viết tương tự:
Thư viện itertools được sử dụng để tạo các chuỗi password.
Thư viện time được sử dụng để tính thời gian.
Tải phần mềm nén file:
https://drive.google.com/file/d/1_y1DnsNQNrYlJaDS-AeozN_FMbjH7F0N/view
2. Coding
Để bẻ khóa file zip online bằng Python trước tiên các bạn hãy tạo một biến lưu giá trị của tất cả những kí tự ở trên bàn phím:
Tiếp theo, bạn hãy viết hàm Brute rồi sử dụng hàm extractall ở module zipfile. Như vậy để tiến hành thử giải nén file zip với password đã được tạo:
123456789 def Brute(zipFile,password):
# Thử giải nén file zip
try:
zipFile.extractall(pwd=password.encode())
print (‘Password:’,password)
return True
except:
pass
Sau đó, chúng ta sẽ có hàm main:
123456789101112131415161718 def main():
# File zip cần crack
zipFile = zipfile.ZipFile(‘filename.zip’)
length = 1
start_time = time.clock()
# Lặp cho đến khi tìm ra pass
while True:
# Tạo list pass
listPass = product(CHARACTER, repeat=length)
for tryPass in listPass:
password = ”.join(tryPass)
# Nếu password đúng thì in thời gian và return
if Brute(zipFile,password):
print(‘Time’,time.clock() – start_time,’s’)
return
# Nếu list pass sai, tăng độ dài kí tự trong list lên 1
length += 1
Lúc này, Function product trong module itertools sẽ bắt đầu thực hiện nhiệm vụ tạo ra list pass có chiều dài chữ trong biến length. Tiếp đến, hàm Brute tiến hành nhiệm vụ thử giải nén mật khẩu trong list này. Nếu trường hợp sai thì tạo lại list pass có độ dài các chữ tăng thêm 1. Bạn hãy thực hiện như thế cho đến khi nào bẻ khóa file zip online và tìm ra password.
Toàn bộ code:
1234567891011121314151617181920212223242526272829303132333435363738import zipfile
from itertools import product
import time
CHARACTER = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()’
def Brute(zipFile,password):
# Thử giải nén file zip
try:
zipFile.extractall(pwd=password.encode())
print (‘Password:’,password)
return True
except:
pass
def main():
# File zip cần crack
zipFile = zipfile.ZipFile(‘filename.zip’)
length = 1
start_time = time.clock()
# Lặp cho đến khi tìm ra pass
while True:
# Tạo list pass
listPass = product(CHARACTER, repeat=length)
for tryPass in listPass:
password = ”.join(tryPass)
# Nếu password đúng thì in thời gian và return
if Brute(zipFile,password):
print(‘Time’,time.clock() – start_time,’s’)
return
# Nếu list pass sai, tăng độ dài kí tự trong list lên 1
length += 1
if __name__ == ‘__main__’:
main()
Xem thêm: Hướng dẫn cách nén File Zip đơn giản nhất
Xem thêm: Cách xoá logo trong Video 100% hiệu quả
3. Thử nghiệm
Chúng ta sẽ tạo một file zip với tên là Takizawa Laura.zip và pass là jav.
Tiến hành chạy thử và kết quả như sau:
Lúc đầu, list pass sẽ được tạo với length = 1 có dạng là [a, b, c,…]. Sau đó, nếu không được thì tiếp tục tăng length = 2. Lúc đó, list sẽ trở thành [aa, ab, ac,…] và nếu cũng không được thì tăng lên length = 3 thì [aaa, aab,…, jav,…].
Đây là một trong những cách bẻ khóa file zip online đơn giản thông qua kĩ thuật Brute Force. Hệ thống sửa chữa laptop Đà Nẵng Techcare hy vọng sẽ giúp các bạn thực hiện thành công nhé!