外贸双语网站源码营销网站认识
- 作者: 五速梦信息网
- 时间: 2026年04月20日 08:18
当前位置: 首页 > news >正文
外贸双语网站源码,营销网站认识,高阳网站建设,怎么建个废品网站文章目录 前言完整代码Githubdocxdoc 代码解释1. msoffcrypto 方法#xff08;用于解密 .docx 文件#xff09;read_secret_word_file 函数密码生成与解密尝试try_decrypt_file 函数 2. comtypes 方法#xff08;用于解密 .doc 文件#xff09;read_secret_word_file 函数注… 文章目录 前言完整代码Githubdocxdoc 代码解释1. msoffcrypto 方法用于解密 .docx 文件read_secret_word_file 函数密码生成与解密尝试try_decrypt_file 函数 2. comtypes 方法用于解密 .doc 文件read_secret_word_file 函数注意事项 总结 结语 前言 加密永远只能拦住自己啊啊啊啊我又忘记密码了但是我超级多可能的密码。 于是我试图自动化尝试。 完整代码 为了避免浪费大家的时间我这里先贴上完整的代码代码分段解释附在文末。 Github 顺手也扔Github上了链接是shandianchengzi/windows_word_decrypt: 这个仓库用Python对word文档进行解密适用于实在想不起来密码准备乱试的人。 docx 本代码来源于 GPTmsoffcrypto-tool 这个工具不能用来解密 doc只能解密 docx。 安装 pip install msoffcrypto-tool完整代码 import msoffcrypto from io import BytesIO import logging# 配置日志 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)def read_secret_word_file(file_path, password):解密加密的 Word 文件并返回解密的内容。:param file_path: 加密的 Word 文件路径:param password: 用于解密的密码:return: Nonetry:with open(file_path, rb) as encrypted_file:# 使用 msoffcrypto 解密office_file msoffcrypto.OfficeFile(encrypted_file)office_file.load_key(passwordpassword) # 提供密码# 尝试解密文件decrypted_content BytesIO()office_file.decrypt(decrypted_content)logging.info(f成功解密文件密码是: {password})return decrypted_content.getvalue()except Exception as e:logging.error(f解密失败密码错误: {password}, 错误信息: {e})raisedef generate_passwords(try_words):根据给定的单词列表生成所有可能的密码组合。:param try_words: 用于生成密码的单词列表:return: 密码列表try_passwd []for i in range(1, 4):for j in range(0, len(try_words)):for k in range(0, len(try_words)):for l in range(0, len(try_words)):passwd try_words[j]if i 1:passwd try_words[k]if i 2:passwd try_words[l]try_passwd.append(passwd)# 去重并返回return list(set(try_passwd))def try_decrypt_file(file_path, try_words, result_path):尝试使用不同的密码解密文件并记录结果。:param file_path: 加密的 Word 文件路径:param try_words: 密码候选词列表:param result_path: 结果输出文件路径# 生成密码列表try_passwd generate_passwords(try_words)# 清空结果文件with open(result_path, w, encodingutf-8) as f:f.write()# 尝试每个密码for passwd in try_passwd:try:decrypted_content read_secret_word_file(file_path, passwd)# 如果解密成功写入结果并退出with open(result_path, a) as f:f.write(f{passwd} 密码正确\n)breakexcept Exception as e:# 如果解密失败记录错误并继续尝试with open(result_path, a, encodingutf-8) as f:f.write(f{passwd} 密码错误尝试下一个密码: {e}\n)# 使用示例 if name main:try_words [password, 1234, qwerty] # 自定义密码尝试词file_path secret.docx # 加密的 Word 文件路径result_path result.txttry_decrypt_file(file_path, try_words, result_path)doc 本代码所使用的库的灵感来源于Python在Linux,Windows上打开有密docdocx文件密码已知_python 读取有密码的docx-CSDN博客代码由GPT生成。 这个可以用来打开docx和doc但是速度比上一个慢非常多。并且需要注意的是用这个代码之前需要先把word这个软件打开打开就行不用管打开了具体什么文件不打开任何文件都行只要word这个软件打开就行。不然会提示“RPC 服务器不可用”。 安装 pip install comtypes完整代码 import os import logging from comtypes.client import CreateObject# 配置日志 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)def read_secret_word_file(filename, password):使用指定的密码打开加密的 Word 文件。:param filename: 加密的 Word 文件路径:param password: 用于解密的密码:return: Nonetry:# 启动 Word 应用程序word CreateObject(Word.Application)word.Visible False # 设置为不可见# 打开加密的 Word 文件doc word.Documents.Open(filename, PasswordDocumentpassword)logging.info(f成功解密文件密码是: {password})doc.Close()except Exception as e:logging.error(f解密失败密码错误: {password}, 错误信息: {e})raisedef generate_passwords(try_words):根据给定的单词列表生成所有可能的密码组合。:param try_words: 用于生成密码的单词列表:return: 密码列表try_passwd []for i in range(1, 4):for j in range(0, len(try_words)):for k in range(0, len(try_words)):for l in range(0, len(try_words)):passwd try_words[j]if i 1:passwd try_words[k]if i 2:passwd try_words[l]try_passwd.append(passwd)# 去重并返回return list(set(try_passwd))def try_decrypt_file(file_path, try_words, result_path):尝试使用不同的密码解密文件并记录结果。:param file_path: 加密的 Word 文件路径:param try_words: 密码候选词列表:param result_path: 结果输出文件路径# 生成密码列表try_passwd generate_passwords(try_words)# 清空结果文件with open(result_path, w) as f:f.write()# 尝试每个密码for passwd in try_passwd:try:read_secret_word_file(file_path, passwd)# 如果解密成功写入结果并退出with open(result_path, a) as f:f.write(f{passwd} 密码正确\n)breakexcept Exception as e:# 如果解密失败记录错误并继续尝试with open(result_path, a) as f:f.write(f{passwd} 密码错误尝试下一个密码: {e}\n)# 使用示例 if name main:try_words [password, 1234, qwerty] # 自定义密码尝试词file_path secret.doc # 加密的文件路径result_path result.txt # 结果文件路径# 将文件路径转换为绝对路径file_path os.path.abspath(file_path)logging.info(f使用的文件路径是: {file_path})try_decrypt_file(file_path, try_words, result_path)代码解释 本部分将详细解释上文中提到的两种解密方法的代码尤其是 read_secret_word_file 函数的实现以及它们如何应用于解密加密的 Word 文件。
- msoffcrypto 方法用于解密 .docx 文件
read_secret_word_file 函数
def read_secret_word_file(file_path, password):解密加密的 Word 文件并返回解密的内容。:param file_path: 加密的 Word 文件路径:param password: 用于解密的密码:return: Nonetry:with open(file_path, rb) as encrypted_file:# 使用 msoffcrypto 解密office_file msoffcrypto.OfficeFile(encrypted_file)office_file.load_key(passwordpassword) # 提供密码# 尝试解密文件decrypted_content BytesIO()office_file.decrypt(decrypted_content)logging.info(f成功解密文件密码是: {password})return decrypted_content.getvalue()except Exception as e:logging.error(f解密失败密码错误: {password}, 错误信息: {e})raise该函数的目的是通过 msoffcrypto 库来解密加密的 .docx 文件。下面是主要步骤的解释 打开加密文件 with open(file_path, rb) as encrypted_file 以二进制模式打开指定的加密 Word 文件。 解密操作 使用 msoffcrypto.OfficeFile 类加载加密文件并通过 office_file.load_key(passwordpassword) 提供密码。然后调用 office_file.decrypt(decrypted_content) 解密文件将解密后的内容保存在 decrypted_content 中。 返回解密内容 解密后的内容通过 decrypted_content.getvalue() 返回以字节流的形式保存解密结果。 异常处理 如果密码错误或其他问题导致解密失败代码会捕捉异常并记录错误信息。
密码生成与解密尝试 def generate_passwords(try_words):根据给定的单词列表生成所有可能的密码组合。:param try_words: 用于生成密码的单词列表:return: 密码列表try_passwd []for i in range(1, 4):for j in range(0, len(try_words)):for k in range(0, len(try_words)):for l in range(0, len(try_words)):passwd try_words[j]if i 1:passwd try_words[k]if i 2:passwd try_words[l]try_passwd.append(passwd)# 去重并返回return list(set(try_passwd))这段代码通过组合给定的单词列表try_words生成可能的密码组合生成的密码会用于解密文件。 代码使用三重嵌套循环生成从 1 到 3 个单词组合的密码并将所有组合保存到 try_passwd 列表中。list(set(try_passwd)) 语句去除了重复的密码组合。 try_decrypt_file 函数 def try_decrypt_file(file_path, try_words, result_path):尝试使用不同的密码解密文件并记录结果。:param file_path: 加密的 Word 文件路径:param try_words: 密码候选词列表:param result_path: 结果输出文件路径# 生成密码列表try_passwd generate_passwords(try_words)# 清空结果文件with open(result_path, w, encodingutf-8) as f:f.write()# 尝试每个密码for passwd in try_passwd:try:decrypted_content read_secret_word_file(file_path, passwd)# 如果解密成功写入结果并退出with open(result_path, a) as f:f.write(f{passwd} 密码正确\n)breakexcept Exception as e:# 如果解密失败记录错误并继续尝试with open(result_path, a, encodingutf-8) as f:f.write(f{passwd} 密码错误尝试下一个密码: {e}\n)在此函数中我们尝试使用多个密码解密文件 密码生成调用 generate_passwords 函数生成候选密码列表。清空结果文件每次尝试解密时都会清空之前的结果并准备记录新的解密结果。尝试解密遍历每个生成的密码并调用 read_secret_word_file 函数解密文件。如果密码正确则记录并退出。失败记录如果解密失败记录失败的密码和错误信息并继续尝试下一个密码。 - comtypes 方法用于解密 .doc 文件 对于 .doc 文件较旧的 Word 格式使用了 comtypes 库方法与 .docx 文件的解密略有不同。这个方法依赖于本地安装的 Microsoft Word并且需要 Word 程序处于运行状态。 read_secret_word_file 函数 def read_secret_word_file(filename, password):使用指定的密码打开加密的 Word 文件。:param filename: 加密的 Word 文件路径:param password: 用于解密的密码:return: Nonetry:# 启动 Word 应用程序word CreateObject(Word.Application)word.Visible False # 设置为不可见# 打开加密的 Word 文件doc word.Documents.Open(filename, PasswordDocumentpassword)logging.info(f成功解密文件密码是: {password})doc.Close()except Exception as e:logging.error(f解密失败密码错误: {password}, 错误信息: {e})raise此方法依赖 comtypes 调用本地安装的 Word 应用程序 启动 Word 应用程序通过 CreateObject(Word.Application) 启动 Word。打开文件调用 word.Documents.Open(filename, PasswordDocumentpassword) 使用提供的密码打开加密的 .doc 文件。成功解密如果密码正确解密的文件会被打开解密后关闭文件。错误处理如果密码错误或其他问题发生会捕捉异常并记录错误信息。 注意事项 在使用此方法时必须确保 Microsoft Word 已经启动。否则会出现 “RPC 服务器不可用” 的错误提示。本方法相对于 msoffcrypto 库解密速度较慢因此推荐使用 msoffcrypto 来解密 .docx 文件。 总结 msoffcrypto 方法 适用于 .docx 文件操作简便且解密速度较快。comtypes 方法 适用于 .doc 文件解密时依赖于本地 Word 应用程序并且速度较慢。 通过这两种方法你可以轻松尝试破解已加密的 Word 文件前提是你知道文件的某些潜在密码并准备进行密码破解。 结语 令人感到悲伤的是我尝试了几千个密码都没有成功我电脑都卡死重启了于是我准备重做我的文档。 然后我开始在电脑里搜索文档的历史存档搜到目录的那一瞬间我想起来了一切qwq。 本账号所有文章均为原创欢迎转载请注明文章出处https://shandianchengzi.blog.csdn.net/article/details/144888638。百度和各类采集站皆不可信搜索请谨慎鉴别。技术类文章一般都有时效性本人习惯不定期对自己的博文进行修正和更新因此请访问出处以查看本文的最新版本。
- 上一篇: 外贸如何做网站推广怎么推广广告
- 下一篇: 外贸推广建站阿里跨境电商平台有哪些
