Trong chương này, chúng ta hãy thảo luận về việc giải mã các tệp trong mật mã bằng Python. Lưu ý rằng đối với quá trình giải mã, chúng tôi sẽ làm theo quy trình tương tự, nhưng thay vì chỉ định đường dẫn đầu ra, chúng tôi sẽ tập trung vào đường dẫn đầu vào hoặc tệp cần thiết được mã hóa
Mã số
Sau đây là mã mẫu để giải mã các tệp trong mật mã bằng Python –
#!/usr/bin/python # ---------------- READ ME --------------------------------------------- # This Script is Created Only For Practise And Educational Purpose Only # This Script Is Created For //bitforestinfo.blogspot.in # This Script is Written By # # ################################################## ######## Please Don't Remove Author Name ######### ############### Thanks ########################### ################################################## # # # =================Other Configuration================ # Usages : usage = "usage: %prog [options] " # Version Version="%prog 0.0.1" # ==================================================== # Import Modules import optparse, sys,os from toolkit import processor as ps def main[]: parser = optparse.OptionParser[usage = usage,version = Version] parser.add_option[ '-i','--input',type = 'string',dest = 'inputfile', help = "File Input Path For Encryption", default = None] parser.add_option[ '-o','--output',type = "string",dest = 'outputfile', help = "File Output Path For Saving Encrypter Cipher",default = "."] parser.add_option[ '-p','--password',type = "string",dest = 'password', help = "Provide Password For Encrypting File",default = None] [options, args] = parser.parse_args[] # Input Conditions Checkings if not options.inputfile or not os.path.isfile[options.inputfile]: print " [Error] Please Specify Input File Path" exit[0] if not options.outputfile or not os.path.isdir[options.outputfile]: print " [Error] Please Specify Output Path" exit[0] if not options.password: print " [Error] No exit[0] inputfile = options.inputfile outputfile = options.outputfile password = options.password work = "D" ps.FileCipher[inputfile,outputfile,password,work] return if __name__ == '__main__': main[]
Bạn có thể sử dụng lệnh sau để thực thi đoạn mã trên -
python pyfilecipher-decrypt.py -i encrypted_file_path -p password
đầu ra
Bạn có thể quan sát đoạn mã sau khi thực hiện lệnh hiển thị ở trên -
Lưu ý - Đầu ra chỉ định các giá trị băm trước khi mã hóa và sau khi giải mã, lưu ý rằng cùng một tệp được mã hóa và quá trình này đã thành công
Ngày nay, chúng tôi quan sát dữ liệu từ tất cả các nguồn khác nhau và cuối cùng thách thức trở thành tính bảo mật và quyền riêng tư của nó. Điều đó không chỉ liên quan đến các bộ dữ liệu chính do các doanh nghiệp nắm giữ mà còn liên quan đến các mô hình và thuật toán AI/ML, và cuối cùng là dữ liệu có dự báo
Lượng dữ liệu đang tăng lên khi số lượng ngành điều chỉnh các thực tiễn khoa học dữ liệu trong quá trình ra quyết định của họ tăng lên. Đã có một số công ty được thành lập trong lĩnh vực mã hóa và bảo mật cho AI/ML và điện toán đám mây, hiện thậm chí còn cho phép tính toán trên dữ liệu được mã hóa
Trong thế giới truyền dữ liệu và thông tin đang phát triển, tính bảo mật của nội dung tệp vẫn là một trong những mối quan tâm lớn nhất đối với các công ty. Một số thông tin có thể được bảo vệ bằng mật khẩu [email, thông tin đăng nhập] trong khi các thông tin khác được truyền qua email hoặc FTP sẽ thiếu hiệu quả nếu được bảo vệ bằng một số từ khóa. Đây là nơi mã hóa tệp đóng vai trò lớn và cung cấp tính bảo mật cũng như sự tiện lợi mà các bên tham gia chuyển tệp tìm kiếm
Vậy mã hóa là gì? . Cách duy nhất để truy cập thông tin tệp sau đó là giải mã nó. Quá trình mã hóa/giải mã được gọi là mật mã
Hãy xem cách chúng tôi có thể mã hóa và giải mã một số tệp của mình bằng Python. Chúng tôi sẽ tuân theo mã hóa đối xứng, nghĩa là sử dụng cùng một khóa để mã hóa và giải mã các tệp
Để tiếp tục làm theo hướng dẫn này, chúng ta sẽ cần thư viện Python sau. mật mã
Nếu bạn chưa cài đặt chúng, vui lòng mở “Command Prompt” [trên Windows] và cài đặt chúng bằng mã sau
pip install cryptography
Và chúng tôi cũng sẽ cần một tệp mẫu mà chúng tôi sẽ làm việc với. Dưới đây là mẫu. csv với một số dữ liệu về điểm số của học sinh
https. //pyshark. com/wp-content/uploads/2020/08/grades. csv
Tạo khóa
Trong ví dụ của chúng tôi, chúng tôi sẽ sử dụng phương trình đối xứng
Fernet là mật mã được xác thực không cho phép đọc và/hoặc sửa đổi tệp mà không có “chìa khóa”
Bây giờ, hãy tạo khóa và lưu nó vào cùng thư mục với tệp dữ liệu của chúng tôi
Nếu bạn kiểm tra thư mục chứa mã Python của bạn, bạn sẽ thấy mykey. tài liệu quan trọng. Bạn có thể mở nó bằng bất kỳ trình soạn thảo văn bản nào [trong trường hợp của tôi, nó hiển thị trong thư mục cục bộ vì tôi sử dụng Mã VS]. Tệp phải chứa một dòng là một chuỗi có thứ tự ký tự. Đối với tôi đó là “VlD8h2tEiJkQpKKnDNKnu8ya2fpIBMOo5oc7JKNasvk=”
Đang tải một khóa
Sau khi chúng tôi tạo khóa mã hóa, chúng tôi sẽ cần tải nó vào môi trường của mình để mã hóa/giải mã các tệp
Bước sau đây rất đơn giản và chỉ cần mở mykey. key và lưu trữ nó trong bộ nhớ cục bộ
Và chỉ để xác minh, chúng ta sẽ thấy đầu ra sau
VlD8h2tEiJkQpKKnDNKnu8ya2fpIBMOo5oc7JKNasvk=
Khóa mã hóa hiện được lưu trữ cục bộ dưới dạng biến khóa
Mã hóa một tập tin
Bây giờ chúng ta có tệp để mã hóa và khóa mã hóa, bây giờ chúng ta sẽ viết một hàm để sử dụng chúng và trả về tệp được mã hóa
Hãy thảo luận về những gì chúng ta đã làm ở đây
- Chúng tôi khởi tạo đối tượng Fernet dưới dạng cửa hàng dưới dạng biến cục bộ f
- Tiếp theo, chúng tôi đọc dữ liệu gốc của mình [điểm. csv] thành bản gốc
- Sau đó, chúng tôi mã hóa dữ liệu bằng đối tượng Fernet và lưu trữ dưới dạng mã hóa
- Và cuối cùng, chúng tôi viết nó thành một cái mới. csv có tên là “enc_grades. csv”
Bạn có thể xem tệp được mã hóa tại đây
https. //pyshark. com/wp-content/uploads/2020/09/enc_grades. csv
Giải mã một tập tin
Sau khi bạn đã mã hóa tệp và, chẳng hạn như đã chuyển thành công tệp sang một vị trí khác, bạn sẽ muốn truy cập tệp đó. Bây giờ, dữ liệu đó ở định dạng được mã hóa. Bước tiếp theo là giải mã nó trở lại nội dung ban đầu
Quá trình chúng ta sẽ thực hiện bây giờ ngược lại với quá trình mã hóa trong phần trước. Chính xác là cùng một quy trình, nhưng bây giờ chúng ta sẽ chuyển từ tệp được mã hóa sang tệp được giải mã
Hãy thảo luận về những gì chúng ta đã làm ở đây
- Chúng tôi khởi tạo đối tượng Fernet dưới dạng cửa hàng dưới dạng biến cục bộ f
- Tiếp theo, chúng tôi đọc dữ liệu được mã hóa của mình [enc_grades. csv] thành mã hóa
- Sau đó, chúng tôi giải mã dữ liệu bằng đối tượng Fernet và lưu trữ dưới dạng giải mã
- Và cuối cùng, chúng tôi viết nó thành một cái mới. csv có tên là “dec_grades. csv”
Bạn có thể xem file đã giải mã tại đây
https. //pyshark. com/wp-content/uploads/2020/09/dec_grades. csv
So sánh “dec_grades. csv” với “điểm gốc. csv”, bạn sẽ thấy rằng trên thực tế hai cái này có nội dung giống hệt nhau. Quá trình mã hóa/giải mã của chúng tôi đã thành công
Hoàn thành ví dụ lập trình hướng đối tượng
Đây là phần bổ sung khi tôi sắp xếp mọi thứ theo định dạng có cấu trúc hơn
Và đây là một ví dụ về mã hóa/giải mã bằng cách sử dụng lớp trên
Phần kết luận
Bài viết này giới thiệu mã hóa và giải mã tệp đối xứng cơ bản bằng Python. Chúng tôi đã thảo luận về một số phần của thư viện mật mã cũng như tạo một ví dụ về quy trình đầy đủ
Vui lòng để lại nhận xét bên dưới nếu bạn có bất kỳ câu hỏi nào hoặc có đề xuất cho một số chỉnh sửa và xem thêm các bài viết về Lập trình Python của tôi