首頁>技術>

為了安全起見,我需要以數字方式攜帶一些基本檔案,例如護照,健康報告和其他政府身份證,並且我不希望其他人擁有我的敏感資訊。因此,我想到了使用密碼對這些檔案進行加密的操作,以便只有我才能看到。

因此,我開始構建一個GUI應用程式來加密這些檔案。

我為此專案使用了兩個主要模組,

PyPDF2-幫助我們提取資訊,合併文件和加密文件等。只需執行pip install PyPDF2即可安裝此模組。Tkinter-建立GUI應用程式,它是Python標準庫中內建的唯一框架。

在構建GUI應用程式之前,我們將瞭解使用PyPDF2模組加密檔案有多麼容易

加密檔案的程式碼

import PyPDF2#Locate pdf file inside PdfFileReader funtionpdf_reader = PyPDF2.PdfFileReader(pdf_file)pdf_writer = PyPDF2.PdfFileWriter()for page_num in range(pdf_reader.numPages):    pdf_writer.addPage(pdf_reader.getPage(page_num))#encrypt method encrypts files with given passwordpdf_writer.encrypt("password")#create a pdf file and make it in wb mode           result_pdf = open('Lockedfile.pdf','wb')  pdf_writer.write(result_pdf)#Close the fileresult_pdf.close()

現在,我們將使用Tkinter構建一個GUI應用程式(與其他GUI框架相比,它具有更大的功能)

建立GUI應用程式的程式碼

import tkinter as tkfrom tkinter import messageboximport PyPDF2from PIL import Image,ImageTkfrom tkinter.filedialog import askopenfileroot = tk.Tk()root.title("PDF Locker")canvas =  tk.Canvas(root,width=600,height=300)canvas.grid(columnspan=3)#logologo = Image.open('/Users/sunilaleti/Desktop/logo.png')logo = ImageTk.PhotoImage(logo)logo_label = tk.Label(image=logo)logo_label.image=logologo_label.grid(column=1,row=0)#instructionsinstructions=tk.Label(root,text="Enter a password and select a pdf to encrypt\n")instructions.grid(columnspan=3,column=0,row=1)#Creating a input field for password password=tk.Entry(root,show="*",width=15)password.grid(column=1,row=2)def open_file():    pdf_file=askopenfile(parent=root,mode="rb",title="choose a file",filetypes=[("PDF Files"," *.pdf")])    FileName=file.name.split(".")[0]    if pdf_file is not None:        pdf_reader = PyPDF2.PdfFileReader(pdf_file)        pdf_writer = PyPDF2.PdfFileWriter()        for page_num in range(pdf_reader.numPages):            pdf_writer.addPage(pdf_reader.getPage(page_num))        pdf_writer.encrypt(password.get())        encryptedFile=FileName+"_Encrypted.pdf"        result_pdf = open(encryptedFile,'wb')          pdf_writer.write(result_pdf)        result_pdf.close()        #To clear input field         password.delete(0, 'end')        #Message box to show success message        messagebox.showinfo("Success","File encrypted successfully")    else:        messagebox.showerror("Failed","Unable to encrypt file")#Creating "Browse file" button using tk.Buttonbrowse_btn=tk.Button(root,text="Browse file",command=lambda:open_file(),width="15",height="2")browse_btn.grid(column=1,row=4)canvas=tk.Canvas(root,width=600,height=250)canvas.grid(columnspan=3)root.mainloop()

最後多說一句,小編是一名python開發工程師,這裡有我自己整理的整套python學習資料和路線,想要這些資料的都可以關注小編,並私信“01”領取。

18
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • HTTP的世界觀