2023年5月19日 星期五

關於國中資訊科技-加密的補充教材-pdf 加密


        由於在資訊科技課程裡,提到[加密]與[解密]。希望讓學生能夠實作[pdf加密]與[pdf解密],那要如何實作?
        目前實作的方式,則是利用Word轉PDF,在PDF上加密。如下圖:
以Word2010為例:
        此時,加密的長度會是6~32位元。那在學生解密時,會花較多時間解密。當密碼長度越長時,解密所花的時間就越長。目前在一節課的時間內,讓學生能夠完成加密與解密。所以,希望pdf 加密的密碼長度能夠限制在四位數以內。因此,需要利用Python程式對pdf加密。
        在資料來源1.,提供一個加密python程式。在Python編譯過程中,會出現錯誤訊息。其中錯誤原因是套件PyPDF2的版本須限制在3.0.0(含)以內。因此,安裝套件PyPDF2 版本為2.9.0。整個過程步驟如下:
1.安裝套件:pip install pypdf2==2.9.0
2.程式碼與需加密的PDF放置位置:
重要:程式碼與需加密的PDF須放置同一位置。
以自己的電腦為例:
或是


3.完整程式碼如下:
需加密的PDF檔名:test.pdf
程式碼檔名:PdfEnCryption01.py
程式碼內容:
from PyPDF2 import PdfFileWriter, PdfFileReader
path = 'test.pdf' # 這裡填寫目標 PDF 所在的路徑

pdf_reader = PdfFileReader('test.pdf')
pdf_writer = PdfFileWriter()

for page in range(pdf_reader.getNumPages()):
    pdf_writer.addPage(pdf_reader.getPage(page))
pdf_writer.encrypt('a123') # 設置密碼為 a123
with open('test.pdf', 'wb') as out:
    pdf_writer.write(out)


資料來源:


沒有留言:

張貼留言

軟體定義網路SDN-主題2-1 OpenFlow 概述

學習目標: 一.介紹OpenFlow特性 二.介紹OpenFlow Ports:實體port、邏輯port、保留port 一.介紹OpenFlow特性 1.OpenFlow 是 (1).控制器與交換器之間溝通的通訊協定 (2)使用了TCP (port 6653;舊版 port 6...