Python編程批量實現(xiàn)md5加密pdf文件
Python編程實現(xiàn)批量md5加密pdf文件
今天在某公眾號看到一個關(guān)于pdf文件加密模塊的介紹,突然有了一個想法,編寫一個批量加密某目錄下的所有pdf文件。結(jié)合md5加密和文件查找等知識,實現(xiàn)這個想法。
運行環(huán)境:
OS:macOS Monterey Version 12.3.1(英文版)
IDE:PyCharm 2020.1
代碼分享如下:
# 文件 ? ? ?:pdf加密.py # IDE ? ? ?:PyCharm # 導(dǎo)入加密模塊 import pikepdf # 導(dǎo)入操作模塊 import os # 導(dǎo)入md5加密模塊 from hashlib import md5 # 此模塊實現(xiàn)輸入密碼不顯示 import getpass # 搜索pdf文件,加密 def search_pdf(path, passwrd, username): ? ? for pdfFile in os.listdir(path): ? ? ? ? pdfPath = os.path.join(path, pdfFile) ? ? ? ? if os.path.isdir(pdfPath): ? ? ? ? ? ? search_pdf(pdfPath, passwrd, username) ? ? ? ? elif '.pdf' in pdfPath: ? ? ? ? ? ? encry_pdf(pdfPath, encrypt_md5(passwrd), username) ? ? ? ? ? ? print(f'{pdfPath}已經(jīng)加密!!密碼保存好?。?!') # 加密函數(shù) def encrypt_md5(passwrd_str): ? ? new_md5 = md5() ? # 創(chuàng)建md5對象 ? ? new_md5.update(passwrd_str.encode(encoding='utf-8')) ? ? # 返回信息摘要 ? ? return ?new_md5.hexdigest() # 加密函數(shù),參數(shù)為pdf文件名,密碼 def encry_pdf(pdfname, passwrd, username): ? ? # 打開被加密的文件,允許覆蓋 ? ? pdf = pikepdf.open(pdfname, allow_overwriting_input=True) ? ? # 保存加密文件 ? ? pdf.save(pdfname, encryption=pikepdf.Encryption(owner=passwrd,user=username, R=4)) # 主函數(shù) if __name__ == '__main__': ? ? Done = True ? ? path = input('請輸入文件所在目錄:') ? ? while Done: ? ? ? ? try: ? ? ? ? ? ? passwrd1 = getpass.getpass("請輸入加密文件的密碼:", stream=None) ? ? ? ? ? ? passwrd2 = getpass.getpass("請再次輸入加密文件的密碼:", stream=None) ? ? ? ? ? ? if passwrd1 == passwrd2: ? ? ? ? ? ? ? ? username1 = input('請輸入用戶名:') ? ? ? ? ? ? ? ? search_pdf(path, passwrd1, username1) ? ? ? ? ? ? ? ? Done = False ? ? ? ? ? ? ? ? break ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print('密碼輸入有誤!?。?) ? ? ? ? except: ? ? ? ? ? ? print('請核實信息?。?)
運行結(jié)果如下:
zsh: suspended sudo python pdf加密.py
(venv) (base) liuxiaowei@MacBookAir 10個有趣的Python高級腳本 % sudo python pdf加密.py
請輸入文件所在目錄:/Users/liuxiaowei/Desktop
請輸入加密文件的密碼:
請再次輸入加密文件的密碼:
密碼輸入有誤?。?! # 密碼輸入有誤
請輸入加密文件的密碼:
請再次輸入加密文件的密碼:
密碼輸入有誤?。。?br />請輸入加密文件的密碼:
請再次輸入加密文件的密碼: # 密碼輸入正確
請輸入用戶名:lxw
/Users/liuxiaowei/Desktop/sql注入.pdf已經(jīng)加密?。∶艽a保存好?。?! # 當(dāng)前目錄下的pdf文件
/Users/liuxiaowei/Desktop/TS852D Specification.pdf已經(jīng)加密!!密碼保存好?。。?br />/Users/liuxiaowei/Desktop/md學(xué)習(xí)筆記/pdf/Windows PE權(quán)威指南.pdf已經(jīng)加密?。∶艽a保存好?。?! # 子目錄下的pdf文件
/Users/liuxiaowei/Desktop/md學(xué)習(xí)筆記/pdf/PythonCodingRule.pdf已經(jīng)加密!!密碼保存好?。?!
/Users/liuxiaowei/Desktop/精通黑客免殺完整版.pdf已經(jīng)加密??!密碼保存好??!!
到此這篇關(guān)于Python編程批量實現(xiàn)md5加密pdf文件的文章就介紹到這了,更多相關(guān)Python加密pdf文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)處理Pandas庫的使用詳解
這篇文章主要為大家詳細介紹了pandas庫的使用方法,包括數(shù)據(jù)導(dǎo)入與導(dǎo)出、數(shù)據(jù)查看和篩選、數(shù)據(jù)處理和分組操作等,感興趣的小伙伴可以了解一下2023-07-07Django 權(quán)限認證(根據(jù)不同的用戶,設(shè)置不同的顯示和訪問權(quán)限)
這篇文章主要介紹了Django 權(quán)限認證(根據(jù)不同的用戶,設(shè)置不同的顯示和訪問權(quán)限),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Windows下Python使用Pandas模塊操作Excel文件的教程
Pandas是一個強大的Python數(shù)據(jù)分析模塊,這里我們先使用ANACONDA來幫助獲取Pandas所以來的一些環(huán)境,然后來初步學(xué)習(xí)Windows下Python使用Pandas模塊操作Excel文件的教程2016-05-05從零學(xué)Python之入門(二)基本數(shù)據(jù)類型
這是繼“hello world”之后的第二篇入門級基礎(chǔ)知識,以后這個系列會按照入門、進階、精通三個分類進行下去,歡迎高手們來拍磚2014-05-05Python實現(xiàn)自動計算Excel數(shù)據(jù)指定范圍內(nèi)的區(qū)間最大值
這篇文章主要為大家詳細介紹了如何基于Python自動計算Excel數(shù)據(jù)指定范圍內(nèi)的區(qū)間最大值,文中的示例代碼簡潔易懂,感興趣的小伙伴可以了解下2023-07-07