日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python加密word文檔詳解

瀏覽:63日期:2022-08-06 15:08:30
目錄Python加密word文檔總結Python加密word文檔

我們先了解一下異或是什么。簡單來說,如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。我們簡單的梳理一下代碼思路。代碼分為兩部分,加密和解密。

1.加密

把文件轉換成二進制的格式,然后生成等長的隨機密鑰進行異或操作,得到加密后的二進制文件。這一步我們需要保留的數據有,加密后的文件和隨機生成的密鑰,當然他們都是一些二進制數。

2.解密

這一步就簡單了,我們把加密后的文件和之前隨機生成的密鑰再進行一次異或操作,即可得到原本的二進制數,然后我們再把它轉換成文本即可。

OK,思路大致明了了,我們需要兩個程序,加密程序接收str參數 ,運行完成會輸出加密后的二進制word文檔,和用于解密的二進制密鑰。解密程序則需要接收兩個int參數,分別為加密程序輸出的兩個二進制內容,異或之后輸出原始文本。那么,上代碼。

加密代碼:

from secrets import token_bytesfrom docx import Documentimport docximport time​def random_key(length): # token_bytes,函數接受一個int參數,用于指定隨機字節串的長度。 # int.from_bytes把字節串轉換為int,也就是我們需要的二進制數 key = token_bytes(nbytes=length) key_int = int.from_bytes(key, ’big’) return key_int​def encrypt(raw): raw_bytes = raw.encode() #參數big意為正序,little則輸出反序。 raw_int = int.from_bytes(raw_bytes, ’big’) key_int = random_key(len(raw_bytes)) return raw_int ^ key_int, key_int​def decrypt(encrypted, key_int): decrypted = encrypted ^ key_int length = (decrypted.bit_length() + 7) // 8 decrypted_bytes = int.to_bytes(decrypted, length, ’big’) return decrypted_bytes.decode()​def encrypt_file(path, key_path=None,): document = Document(path) all_paragraphs = document.paragraphs file = docx.Document() file2 = docx.Document()​ jkl = input(’請輸入希望保存的文件名:’) + ’.docx’​ for paragraph in all_paragraphs:# 打印每一個段落的文字zz,key = encrypt(paragraph.text)​#print(’加密:’,zz)#print(’key:’, key)​file.add_paragraph(str(zz))file.save(jkl)​file2.add_paragraph(str(key))file2.save('key.docx')​print(’滑稽研究所出品!’)print(’僅支持英文文件名。’)chenggong = encrypt_file(input(’請輸入需要加密的文件名:’))print('已完成!十秒后自動關閉')time.sleep(10)#生成加密文件

通過 encode 方法,將字符串編碼成字節串。int.from_bytes 函數將字節串轉換為 int 對象。最后對二進制對象和隨機密鑰進行異或操作,就得到了加密文本。

解密代碼:

from secrets import token_bytesfrom docx import Documentimport docximport time​def random_key(length): # token_bytes,函數接受一個int參數,用于指定隨機字節串的長度。 # int.from_bytes把字節串轉換為int,也就是我們需要的二進制數 key = token_bytes(nbytes=length) key_int = int.from_bytes(key, ’big’) return key_int​def encrypt(raw): raw_bytes = raw.encode() raw_int = int.from_bytes(raw_bytes, ’big’) key_int = random_key(len(raw_bytes)) return raw_int ^ key_int, key_int​def decrypt(encrypted, key_int): decrypted = encrypted ^ key_int length = (decrypted.bit_length() + 7) // 8 decrypted_bytes = int.to_bytes(decrypted, length, ’big’) return decrypted_bytes.decode()​jjj = []kkk = []​def decrypt_file(path_encrypted, key_path=None, *, encoding=’utf-8’): document = Document(path_encrypted) all_paragraphs = document.paragraphs​ do2 = Document(’key.docx’) all_p= do2.paragraphs​ for i in all_paragraphs:#str轉intjiam = int(i.text)jjj.append(jiam)​#print(’加密:’,jiam) #print(jjj)​ for k in all_p:#str轉intkey = int(k.text)kkk.append(key)​#print(’key:’,key) #print(kkk)​ cc = zip(jjj,kkk) res = list(cc) return res#傳入元組,或兩個int。print(’滑稽研究所出品!’)print(’警告,嚴禁修改密鑰文件名!!!’)print(’直接輸入文件名,無需格式后綴。’)rr1 = decrypt_file(input('請輸入需要破解文件的文件名(僅限.docx文件):')+’.docx’)​file = docx.Document()for i in rr1: ff = decrypt(*i) #print(ff) #print(type(ff)) file.add_paragraph(ff)file.save('res.docx')print(’解密完成,請在當前文件夾下提取文件!’)print(’十秒后自動關閉!’)time.sleep(10)

我們需要將兩個程序打包成exe。運行加密程序得到的二進制word文檔,可以給其他人,但密鑰必須自己保存。當別人滿足你的要求之后,我們可以把密鑰和解密程序給他。注意,只對docx文件有效,且不可以修改密鑰文件的名稱,不然會報錯,解密失敗。

運行結果:

原始word文件。

Python加密word文檔詳解

加密后:

Python加密word文檔詳解

生成的key密鑰:

Python加密word文檔詳解

加密后的文件和生成的密鑰,放在解密程序文件夾下之后,會得到如下。我們得到了原文件,美中不足的是所有的首行縮進都消失了,變成了左對齊。

Python加密word文檔詳解

同樣的文件,重新加密之后,會得到不同的加密文件和密鑰。因此如果加密文件和密鑰不匹配,即使他們的源文件是一樣的,也是無法解密的。此外密鑰丟失,加密的文件將永遠不能解密。

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注好吧啦網的更多內容!

標簽: python
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品三区视频| 日韩欧美一区二区三区免费观看| 99精品网站| 亚洲黄色网址| 亚洲精品**中文毛片| 国产精品久久久免费| 国产精品最新| 老司机精品视频在线播放| 免费一区二区三区在线视频| 麻豆国产精品一区二区三区| 国产一区日韩| av高清不卡| 成人看片网站| 欧美精选一区二区三区| 红桃视频欧美| 一区二区三区国产在线| 亚久久调教视频| 欧美在线首页| 精品黄色一级片| 日韩精品1区| 91精品国产91久久久久久黑人| 一区二区三区视频免费观看| 国产一区导航| 日韩美女精品| 久久精品国产一区二区| 日本欧美不卡| 鲁大师影院一区二区三区| 亚洲欧洲日韩精品在线| 国产精品一国产精品k频道56| 美女性感视频久久| se01亚洲视频| 水野朝阳av一区二区三区| 日本欧美久久久久免费播放网| 国产精品第一国产精品| 欧美xxxx中国| 91精品精品| 综合在线一区| 欧美国产另类| 久久国产中文字幕| 亚洲精品欧美| 日韩1区2区| 中文精品视频| 国产精品欧美一区二区三区不卡| 日韩欧美一区二区三区免费看| 亚洲激情社区| 国产乱人伦精品一区| 神马午夜久久| 日韩欧美精品一区二区综合视频| 蜜桃久久久久| 亚洲免费观看| 日韩av中文字幕一区| а√天堂中文在线资源8| 国产模特精品视频久久久久| 国产亚洲第一伦理第一区| av高清不卡| 亚洲va久久久噜噜噜久久| 国产一区二区三区探花| 国产一级久久| 精品国产18久久久久久二百| 国产毛片一区| 精品少妇一区| 亚洲va久久久噜噜噜久久| 中文在线免费视频| 日韩一区二区三区高清在线观看| www.九色在线| 亚洲精品伦理| av一区在线| 日本电影久久久| 亚洲91视频| 国产福利一区二区三区在线播放| 午夜久久美女| 国产在线一区不卡| 日本亚洲最大的色成网站www| 日韩欧美字幕| 国产亚洲高清在线观看| 欧美日韩视频一区二区三区| 国产精品地址| 石原莉奈在线亚洲三区| 国产精品13p| 日本午夜精品久久久久| 日韩中文在线电影| 国产亚洲一区二区三区啪| 午夜久久久久| 日韩深夜视频| 美女视频免费精品| 日韩精品免费视频人成| 一本色道精品久久一区二区三区| 久久久久免费| 牛牛精品成人免费视频| 日韩 欧美一区二区三区| 日韩视频中文| 99久久夜色精品国产亚洲1000部| 精品免费av| 国产乱码精品一区二区亚洲| 一区二区三区网站| 91精品推荐| 91视频久久| 麻豆精品在线| 日本综合精品一区| 一区二区精彩视频| 最新日韩欧美| 性欧美xxxx免费岛国不卡电影| 色婷婷亚洲mv天堂mv在影片| 麻豆视频久久| 国产精品qvod| 国产日韩一区二区三区在线| 无码日韩精品一区二区免费| 午夜亚洲一区| 欧美不卡视频| 久久久久久久久99精品大| 精品国产18久久久久久二百| 久久精品国产成人一区二区三区| 国产精品99久久免费| 97久久超碰| 三级久久三级久久久| 综合一区二区三区| 日韩国产欧美一区二区三区| 少妇精品在线| 日韩不卡一二三区| 欧美一区=区三区| 97久久精品| 国产精品99久久免费观看| 国产欧美日韩| 国产精品s色| 你懂的国产精品| 另类综合日韩欧美亚洲| 美女毛片一区二区三区四区最新中文字幕亚洲 | 伊人久久一区| 美女网站久久| 免费人成精品欧美精品| 免费国产自线拍一欧美视频| 国产农村妇女精品一二区| 久久av一区| 午夜一级在线看亚洲| 蜜桃视频一区二区三区| 亚洲视频电影在线| 日韩精品电影一区亚洲| 国产亚洲久久| 粉嫩av一区二区三区四区五区| 国产夫妻在线| 久久天堂成人| 尤物网精品视频| 亚洲色图国产| 国产免费av一区二区三区| 麻豆一区二区三| 一本大道色婷婷在线| 欧美色图一区| 一区二区不卡| 国产精品多人| 日韩中文在线电影| 亚洲激情欧美| 亚洲专区视频| 国产乱码精品一区二区三区四区| 久久精品网址| 久久久久久久久久久妇女 | 国产精品蜜芽在线观看| 国产99亚洲| 亚洲天堂日韩在线| 欧美交a欧美精品喷水| 欧美国产偷国产精品三区| 欧美一区二区三区高清视频| 最新国产精品久久久| 国产精品黄色片| 久久久精品五月天| 蜜臀a∨国产成人精品| 欧美综合社区国产| 色在线视频观看| 亚洲综合国产| 国产精品v日韩精品v欧美精品网站| 欧美成人a交片免费看| 免费久久99精品国产自在现线| 国产欧美日韩亚洲一区二区三区| 深夜福利视频一区二区| 蜜臀91精品一区二区三区| 狂野欧美性猛交xxxx| 婷婷六月综合| 国产毛片一区二区三区| 日本精品影院| 亚洲tv在线| 日韩免费福利视频| 日韩激情一二三区| 性欧美videohd高精| 日韩在线观看中文字幕| 中文字幕在线免费观看视频| 蜜臀久久99精品久久久久久9| 精品亚洲成人| 夜夜嗨网站十八久久| 免费亚洲婷婷| 首页国产欧美久久| 国产成人久久精品麻豆二区 | 蜜桃视频一区二区| 国产一区二区三区探花| 日韩精品一级中文字幕精品视频免费观看 | 日韩高清电影免费| 国产中文在线播放| 亚洲乱亚洲高清| 久久久天天操| 国产精品欧美三级在线观看 | 精品三级久久久| 亚洲有吗中文字幕|