婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Python加密word文檔詳解

Python加密word文檔詳解

熱門標(biāo)簽:ai電話機(jī)器人哪里好 宿遷星美防封電銷卡 地圖標(biāo)注審核表 外呼并發(fā)線路 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 長(zhǎng)沙高頻外呼系統(tǒng)原理是什么 百度地圖標(biāo)注沒有了 ai電銷機(jī)器人源碼 湛江智能外呼系統(tǒng)廠家

Python加密word文檔

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

1.加密

把文件轉(zhuǎn)換成二進(jìn)制的格式,然后生成等長(zhǎng)的隨機(jī)密鑰進(jìn)行異或操作,得到加密后的二進(jìn)制文件。這一步我們需要保留的數(shù)據(jù)有,加密后的文件和隨機(jī)生成的密鑰,當(dāng)然他們都是一些二進(jìn)制數(shù)。

2.解密

這一步就簡(jiǎn)單了,我們把加密后的文件和之前隨機(jī)生成的密鑰再進(jìn)行一次異或操作,即可得到原本的二進(jìn)制數(shù),然后我們?cè)侔阉D(zhuǎn)換成文本即可。

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

加密代碼:

from secrets import token_bytes
from docx import Document
import docx
import time
​
def random_key(length):
    # token_bytes,函數(shù)接受一個(gè)int參數(shù),用于指定隨機(jī)字節(jié)串的長(zhǎng)度。
    # int.from_bytes把字節(jié)串轉(zhuǎn)換為int,也就是我們需要的二進(jìn)制數(shù)
    key = token_bytes(nbytes=length)
    key_int = int.from_bytes(key, 'big')
    return key_int
​
def encrypt(raw):
    raw_bytes = raw.encode()
    #參數(shù)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('請(qǐng)輸入希望保存的文件名:') + '.docx'
​
    for paragraph in all_paragraphs:
        # 打印每一個(gè)段落的文字
        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('請(qǐng)輸入需要加密的文件名:'))
print("已完成!十秒后自動(dòng)關(guān)閉")
time.sleep(10)
#生成加密文件

通過 encode 方法,將字符串編碼成字節(jié)串。int.from_bytes 函數(shù)將字節(jié)串轉(zhuǎn)換為 int 對(duì)象。最后對(duì)二進(jìn)制對(duì)象和隨機(jī)密鑰進(jìn)行異或操作,就得到了加密文本。

解密代碼:

from secrets import token_bytes
from docx import Document
import docx
import time
​
def random_key(length):
    # token_bytes,函數(shù)接受一個(gè)int參數(shù),用于指定隨機(jī)字節(jié)串的長(zhǎng)度。
    # int.from_bytes把字節(jié)串轉(zhuǎn)換為int,也就是我們需要的二進(jìn)制數(shù)
    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轉(zhuǎn)int
        jiam = int(i.text)
        jjj.append(jiam)
​
        #print('加密:',jiam)
    #print(jjj)
​
    for k in all_p:
        #str轉(zhuǎn)int
        key = int(k.text)
        kkk.append(key)
​
        #print('key:',key)
    #print(kkk)
​
    cc = zip(jjj,kkk)
    res = list(cc)
    return res
#傳入元組,或兩個(gè)int。
print('滑稽研究所出品!')
print('警告,嚴(yán)禁修改密鑰文件名!!!')
print('直接輸入文件名,無需格式后綴。')
rr1 = decrypt_file(input("請(qǐng)輸入需要破解文件的文件名(僅限.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('解密完成,請(qǐng)?jiān)诋?dāng)前文件夾下提取文件!')
print('十秒后自動(dòng)關(guān)閉!')
time.sleep(10)

我們需要將兩個(gè)程序打包成exe。運(yùn)行加密程序得到的二進(jìn)制word文檔,可以給其他人,但密鑰必須自己保存。當(dāng)別人滿足你的要求之后,我們可以把密鑰和解密程序給他。注意,只對(duì)docx文件有效,且不可以修改密鑰文件的名稱,不然會(huì)報(bào)錯(cuò),解密失敗。

運(yùn)行結(jié)果:

原始word文件。


加密后:


生成的key密鑰:

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


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

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

您可能感興趣的文章:
  • Python快速優(yōu)雅的批量修改Word文檔樣式
  • 教你如何利用Python批量翻譯英文Word文檔并保留格式
  • Python實(shí)現(xiàn)對(duì)word文檔添加密碼去除密碼的示例代碼
  • Python實(shí)現(xiàn)Word文檔轉(zhuǎn)換Markdown的示例
  • python3處理word文檔實(shí)例分析

標(biāo)簽:普洱 大同 漯河 林芝 南平 盤錦 寧夏 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python加密word文檔詳解》,本文關(guān)鍵詞  Python,加密,word,文檔,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python加密word文檔詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python加密word文檔詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩视频一区二区三区在线播放| 久久国内精品视频| 91首页免费视频| 亚洲欧洲日产国码二区| 国产盗摄一区二区三区| 久久理论电影网| 韩国女主播一区二区三区| 精品国偷自产国产一区| 国产高清在线观看免费不卡| 国产精品三级av| 99久久精品免费看国产| 亚洲激情图片qvod| 欧美日韩成人一区| 久久99久久精品| 欧美国产精品一区二区三区| 99riav久久精品riav| 亚洲福中文字幕伊人影院| 欧美精品日日鲁夜夜添| 激情深爱一区二区| 国产精品美女久久久久久| 99精品热视频| 日韩成人精品在线| 久久久久久久久免费| 一本色道久久加勒比精品| 亚洲午夜精品17c| 26uuu精品一区二区三区四区在线| 国产成人av电影免费在线观看| 国产精品国产三级国产| 欧美狂野另类xxxxoooo| 国产在线国偷精品免费看| 日韩久久一区二区| 欧美精品精品一区| 国产91精品一区二区麻豆网站 | 777亚洲妇女| 国产综合成人久久大片91| 亚洲四区在线观看| 日韩欧美123| 日韩手机在线导航| 国产成人精品1024| 日韩精品乱码免费| 亚洲视频在线一区观看| 欧美mv和日韩mv的网站| 91国偷自产一区二区开放时间 | 日韩色视频在线观看| www.欧美日韩| 久久国产尿小便嘘嘘尿| 依依成人综合视频| 中国色在线观看另类| 欧美高清视频在线高清观看mv色露露十八 | 日韩精品影音先锋| 99久久99精品久久久久久| 麻豆91免费看| 亚洲国产日韩a在线播放性色| 久久久久久**毛片大全| 欧美一区二区久久| 欧美午夜在线一二页| 国产成人av电影免费在线观看| 日本美女一区二区三区| 亚洲在线视频免费观看| 亚洲欧美综合色| 欧美精品一区二区三区在线播放| 欧美日韩中文国产| 色综合久久综合网欧美综合网| 黄网站免费久久| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲成av人片一区二区三区| 国产精品高潮呻吟| 国产免费久久精品| 久久久亚洲高清| 欧美成人免费网站| 欧美日韩久久久| 欧美性受xxxx黑人xyx性爽| 99riav久久精品riav| 成人av在线影院| 大胆亚洲人体视频| 丁香一区二区三区| 国产成人午夜精品影院观看视频| 久久99久国产精品黄毛片色诱| 麻豆专区一区二区三区四区五区| 美女网站视频久久| 精品一区二区三区不卡| 精品一区二区三区视频在线观看| 日韩影视精彩在线| 日本成人在线电影网| 日日嗨av一区二区三区四区| 日韩中文字幕91| 日韩和的一区二区| 日本欧洲一区二区| 久久精品免费观看| 国产美女久久久久| 高清在线观看日韩| 成人黄色在线网站| 在线观看欧美黄色| 91精品国产综合久久久久久久| 91精品麻豆日日躁夜夜躁| 日韩情涩欧美日韩视频| 精品粉嫩aⅴ一区二区三区四区| 久久影音资源网| 亚洲国产高清在线| 亚洲美女屁股眼交3| 亚洲国产日韩综合久久精品| 午夜久久久久久久久| 玖玖九九国产精品| 国产一区二区精品久久99| 麻豆精品视频在线观看视频| 国产ts人妖一区二区| 97se亚洲国产综合自在线不卡| 在线观看日产精品| 日韩色在线观看| 国产精品卡一卡二卡三| 午夜精品久久久久久久蜜桃app| 久久99九九99精品| 91麻豆精东视频| 欧美一激情一区二区三区| 亚洲成人av免费| 麻豆91在线播放免费| 波多野结衣精品在线| 4438成人网| 国产精品青草久久| 午夜精品福利久久久| 国产麻豆欧美日韩一区| 欧洲国内综合视频| 欧美一区二区三区免费观看视频| 国产欧美一区二区精品性色超碰| 一区二区三区高清在线| 日韩一区欧美二区| 91美女视频网站| 日韩免费在线观看| 一区二区三区中文在线观看| 九色综合国产一区二区三区| 99久久99久久综合| 精品美女一区二区三区| 一区二区三区资源| 国产精品自拍在线| 欧美男同性恋视频网站| 国产精品久久久久影院| 久久97超碰色| 欧美精品日日鲁夜夜添| 亚洲欧美国产三级| 国产99久久久国产精品潘金网站| 欧美妇女性影城| 亚洲综合丁香婷婷六月香| 国产91精品免费| 欧美成人一区二区三区片免费| 一区二区久久久| 国产成人精品免费看| www国产精品av| 亚洲国产日韩一级| 色噜噜狠狠色综合欧洲selulu| 欧美国产精品一区二区三区| 精品午夜久久福利影院| 欧美一区在线视频| 夜夜亚洲天天久久| 91视频国产资源| 成人免费在线视频| 粉嫩欧美一区二区三区高清影视| 精品国产三级电影在线观看| 五月激情六月综合| 欧美视频完全免费看| 亚洲一区二区在线视频| 91猫先生在线| 最新欧美精品一区二区三区| 国产91富婆露脸刺激对白| 日韩成人一区二区三区在线观看| 一本色道**综合亚洲精品蜜桃冫| 国产精品毛片大码女人| 成人免费av资源| 国产精品久久久久一区 | 亚洲.国产.中文慕字在线| 一本色道亚洲精品aⅴ| 亚洲人成亚洲人成在线观看图片| 国产成人精品综合在线观看| 国产欧美日韩精品a在线观看| 国产精品亚洲а∨天堂免在线| 欧美—级在线免费片| 成人黄色综合网站| 国产精品福利av| 色狠狠一区二区| 亚洲一区二区视频在线观看| 欧美三级视频在线| 秋霞午夜av一区二区三区| 欧美一级黄色录像| 国产乱对白刺激视频不卡 | 中文字幕中文字幕一区二区| 成人高清av在线| 亚洲天天做日日做天天谢日日欢| 色狠狠一区二区三区香蕉| 午夜精品福利久久久| 精品欧美一区二区三区精品久久| 黄色精品一二区| 国产目拍亚洲精品99久久精品 | 色天天综合色天天久久| 午夜影院在线观看欧美| 日韩亚洲电影在线| 国产一区二区导航在线播放| 国产精品久久久久婷婷二区次| 色悠悠久久综合| 美腿丝袜亚洲一区| 国产欧美精品区一区二区三区| 99久久综合色|