Mục lục:

Phần mềm giải mã / mã hóa bảo mật Python: 3 bước
Phần mềm giải mã / mã hóa bảo mật Python: 3 bước

Video: Phần mềm giải mã / mã hóa bảo mật Python: 3 bước

Video: Phần mềm giải mã / mã hóa bảo mật Python: 3 bước
Video: 🔥 🔥 🔥 🔥🔥 Clip cực hot! - Chuyển đổi mã hóa và dò tìm 1,000,000 mật khẩu bằng #Python như thế nào? 2024, Tháng mười một
Anonim
Phần mềm giải mã / mã hóa bảo mật Python
Phần mềm giải mã / mã hóa bảo mật Python
Phần mềm giải mã / mã hóa bảo mật Python
Phần mềm giải mã / mã hóa bảo mật Python

Trong phần Có thể hướng dẫn này, tôi sẽ chỉ cho bạn cách với một số Python đơn giản, bạn có thể giữ an toàn cho các tệp của mình bằng cách sử dụng AES tiêu chuẩn công nghiệp.

Yêu cầu:

- Python 3.7

- Thư viện PyAesCrypt

- thư viện hashlib

Nếu bạn không có các thư viện này, bạn có thể cài đặt dễ dàng bằng cách gõ:

pip3 cài đặt hashlib

pip3 cài đặt PyAesCrypt

trong thiết bị đầu cuối (hoặc CMD)

Bạn nên có những thứ sau:

- thư viện ngẫu nhiên

- thư viện hệ điều hành

- thư viện hệ thống

Tôi đang sử dụng OS X, nhưng điều đó không quá quan trọng, ngoại trừ hướng của các dấu gạch chéo trong đường dẫn tệp (OS X: /, Windows: )

Xin lưu ý: Vì một số trục trặc, các vết lõm trong mã không hiển thị vì một số lý do. Do đó, sẽ không có thụt lề trong mã được hiển thị, tuy nhiên chúng hiện diện trong các tệp Python mà tôi đã đính kèm ở cuối và trong các hình ảnh đính kèm. Chỉ cần không lấy mã trực tiếp từ văn bản được hiển thị, bởi vì nó sẽ không hoạt động do thiếu dấu thụt lề

Nếu bạn đã cài đặt tất cả các phụ thuộc, hãy chuyển sang Bước 1.

Bước 1: Viết tệp cài đặt

Viết tệp cài đặt
Viết tệp cài đặt
Viết tệp thiết lập
Viết tệp thiết lập
Viết tệp cài đặt
Viết tệp cài đặt
Viết tệp thiết lập
Viết tệp thiết lập

Một trong những yếu tố làm cho điều này trở nên an toàn là việc sử dụng các hàm băm để kiểm tra mật khẩu. Tệp thiết lập (tôi đang gọi là setupsafe.py) của tôi sẽ là:

- Tạo một thư mục và các tập tin giả cho mật khẩu

- Đặt mật khẩu

- Đặt số tập tin

- Băm mật khẩu

Trước hết, chúng tôi sẽ nhập các yếu tố phụ thuộc của chúng tôi:

từ nhập hệ thống *

nhập hệ điều hành

nhập ngẫu nhiên

nhập mã băm

Tiếp theo, chúng ta sẽ tạo một thư mục để chứa băm mật khẩu và các tệp giả:

hãy thử: nếu không phải là os.path.exists ('desktop / safesetup'):

os.mkdir ('desktop / safesetup /')

ngoại trừ OSError:

print ("Lỗi khi tạo thư mục")

Mã này sẽ tạo một thư mục được gọi là safesetup (trừ khi nó đã tồn tại).

Sau đó, chúng tôi sẽ đặt mật khẩu và tạo một số ngẫu nhiên từ 1 đến 100 như cách của chúng tôi để điều hướng các tệp giả:

mật khẩu toàn cầu = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Bây giờ chúng ta đã có mật khẩu và số tệp của mình, chúng ta sẽ tạo 99 tệp giả bên trong safesetup và một tệp thực sẽ chứa hàm băm mật khẩu của chúng ta:

cho x trong khoảng (101): if (x! = n):

f = open (("desktop / safesetup /" + str (x)), "w +")

f.close ()

khác:

password = hashlib.sha256 (password).hexdigest ()

f = open (("desktop / safesetup /" + str (x)), "w +")

f.write (mật khẩu)

f.close ()

print (n)

Tệp thực được gọi là bất kỳ số nguyên n nào. Tệp này chứa mật khẩu của chúng tôi, sau khi được băm bằng thuật toán sha256 (thuật toán băm này được sử dụng rộng rãi trong tiền điện tử, đặc biệt là Bitcoin).

Hãy nhớ n là gì (nó sẽ được in trong bảng điều khiển), vì nó cũng quan trọng như mật khẩu.

Đó là tất cả những gì chúng ta cần cho chương trình thiết lập của mình, vì vậy bây giờ chúng ta sẽ chuyển sang chương trình mã hóa / giải mã.

Bước 2: Tệp mã hóa / giải mã

Tệp mã hóa / giải mã
Tệp mã hóa / giải mã
Tệp mã hóa / giải mã
Tệp mã hóa / giải mã
Tệp mã hóa / giải mã
Tệp mã hóa / giải mã

Phần thiết lập của tệp chính nhập các thành phần phụ thuộc, băm mật khẩu đã nhập và truy xuất băm mật khẩu thực bằng cách sử dụng số tệp đã nhập.

Đầu tiên, các yếu tố phụ thuộc:

từ nhập hệ thống * nhập hệ điều hành

nhập pyAesCrypt

nhập mã băm

Tiếp theo, băm mật khẩu đã nhập:

password = argv [1].encode ('utf-8') password = hashlib.sha256 (password).hexdigest ()

Cuối cùng, lấy lại mật khẩu đã băm:

file_key = str (argv [2]) hash = open (("desktop / safesetup /" + file_key), ("r +")). read ()

Phần thứ hai của tệp mã hóa sẽ so sánh các hàm băm, xác định độ chính xác của phép so sánh và sử dụng thư viện python AESCrypt để mã hóa hoặc giải mã tệp bạn chọn. Đây là một đoạn mã khá lớn, nhưng tôi sẽ chia nhỏ nó ra:

if (password == hash): print ("Mật khẩu được chấp nhận")

bufferSize = 64 * 1024

operation = str (input ("Bạn đang truy xuất hoặc mã hóa tệp? (r hoặc e)"))

if (hoạt động == 'r'):

file_name = str (input ("Tệp cần truy xuất:"))

pyAesCrypt.decryptFile ((file_name + ".aes"), file_name, mật khẩu, bufferSize)

os.remove ((tên_tệp + ".aes"))

elif (hoạt động == 'e'):

file_name = str (input ("Tệp cần mã hóa:"))

pyAesCrypt.encryptFile (file_name, (file_name + ".aes"), mật khẩu, bufferSize)

os.remove (tên_tệp)

khác:

print ("Lỗi: Nhập sai")

khác:

print ("Quyền truy cập bị từ chối")

Câu lệnh if đầu tiên xác định xem các mật khẩu đã băm có khớp hay không. Nếu họ làm vậy, nó sẽ tiếp tục hỏi bạn muốn mã hóa tệp hay truy xuất tệp đã mã hóa. Tùy thuộc vào đầu vào của bạn, nó sẽ mã hóa hoặc giải mã tệp được cung cấp. Khi được nhắc cung cấp tên của tệp, hãy đảm bảo chỉ định đường dẫn trừ khi tệp nằm trong cùng thư mục với chương trình python. Chương trình xóa tệp ở trạng thái trước đó, thay thế bằng tệp.aes được mã hóa hoặc giải mã và thay thế bằng tệp gốc.

Trong tương lai, tôi có thể cập nhật điều này để bao gồm nhận dạng khuôn mặt bằng thư viện Python OpenCV, nhưng hiện tại, mật khẩu sẽ phải đủ.

Bước 3: Hoạt động của tệp

Để chạy tệp thiết lập, hãy làm theo các bước sau:

1. Nhập thiết bị đầu cuối:

mật khẩu python3 directory / setupname.py (thay thế thư mục, tên thiết lập và mật khẩu bằng các giá trị tương ứng của chúng)

2. Thiết bị đầu cuối sẽ xuất ra số tệp của bạn. Giữ cái này.

Để chạy chương trình mã hóa / giải mã, hãy làm theo các bước sau:

1. Nhập thiết bị đầu cuối:

python3 directory / filename.py password filenumber (thay thế thư mục, tên tập tin, mật khẩu và số tập tin bằng các giá trị tương ứng của chúng)

2. Sau đó, thiết bị đầu cuối sẽ chấp nhận hoặc từ chối mật khẩu của bạn. Nếu bị từ chối, hãy thử lại và đảm bảo bạn nhập đúng giá trị. Khi quyền truy cập đã được cấp, thiết bị đầu cuối sẽ hỏi bạn xem bạn có muốn mã hóa tệp hay truy xuất tệp hay không. Để mã hóa một tệp, hãy nhập e, và để truy xuất tệp đã mã hóa, hãy nhập r.

3. Sau đó, bạn sẽ được yêu cầu cung cấp tên tệp. Hãy nhớ cung cấp thư mục của tệp cũng như tên và cả phần mở rộng tệp. Tuy nhiên, nếu bạn đang giải mã một tệp, không nhập phần.aes của phần mở rộng, vì mã này giải thích cho điều đó.

4. Chương trình sau đó mã hóa hoặc giải mã tệp được cung cấp và xóa tệp ở trạng thái trước đó (giữ lại tệp đã mã hóa hoặc đã giải mã).

Thì đấy! Cảm ơn bạn đã làm cho nó đi sâu vào hướng dẫn, tôi biết đọc các hướng dẫn viết mã không phải là điều thú vị nhất. Các tệp python được đính kèm trong bước này, dành cho những người bạn muốn thử. Một lần nữa, cảm ơn bạn đã đọc và tôi chúc bạn gặp nhiều may mắn trong những nỗ lực viết mã trong tương lai.

Đề xuất: