mcpField
P
protect-with-password

protect-with-password

github.com/transilienceai文档处理598102 次安装13 周前更新
代码仓库

关于 protect-with-password

Protect With Password 可生成或接收一个密码,为指定文件创建受保护副本,且不修改原件。PDF 使用原生 AES-256,其他文件使用 AES-256 7-Zip 压缩包;若无法使用该加密方式则报告失败,不降级使用弱加密。

主要功能

  1. 01生成或复用同一个密码
  2. 02使用原生 AES-256 保护 PDF
  3. 03将其他文件封装为 AES-256 7-Zip 压缩包
  4. 04创建副本而不修改原件
  5. 05以受限文件权限保存密码
  6. 06加密不可用时报告失败,不降级

适用场景

  1. 01用同一个密码保护一组指定文件
  2. 02创建受密码保护的 PDF 副本
  3. 03将 Office 文档或其他文件打包为加密压缩包

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/transilienceai/communitytools --skill protect-with-password

安装后在 Claude Code 中输入/protect-with-password确认已加载。

详细介绍

使用密码保护

生成一个强密码,并按每种文件类型的适用方式,使用该密码保护所有引用的文件。操作确定且不破坏原文件(绝不修改原文件),只使用 AES-256。

运行

python3 tools/protect_with_password.py FILE [FILE ...] \
    [--password PW] [--length 24] [--out-dir DIR] \
    [--password-file PATH | --no-password-file]
  • 将用户引用的每个文件都作为位置参数传入。
  • 默认会生成一个强密码(--password 可覆盖此设置,以便重复使用某个密码)。
  • 受保护的副本会写入每个输入文件所在目录,或写入 --out-dir 指定的目录。
  • 工具会将 JSON 摘要输出到 stdout,并将密码横幅输出到 stderr;此外,除非指定 --no-password-file,否则会将密码写入权限为 600 的 PROTECT-PASSWORD.txt。

各类型的保护方式

文件保护方式结果
.pdf原生 AES-256(qpdf → pypdf 回退)<name>-protected.pdf — 收件人打开文件时会被提示输入密码
.docx/.xlsx/.pptx、.doc/.xls/.ppt、图片及其他文件AES-256 7-Zip 压缩包(-mhe=on,加密文件名)<name>.7z — 收件人使用密码解压(7-Zip / Keka / WinRAR)

原生的 Office 文件内加密(MS-OFFCRYPTO“agile”)需要 LibreOffice 或此处未附带的专用加密工具,因此 Office 文件会改用高强度 AES-256 压缩包封装。如果没有可用于某个文件的 AES-256 工具,该文件会被报告为失败——绝不会降级为较弱的 ZipCrypto/RC4(避免造成虚假的安全感)。

运行后

将密码转告用户,并提醒他们通过带外渠道分享密码——绝不要通过与受保护文件相同的渠道或电子邮件分享;交付后删除 PROTECT-PASSWORD.txt。只有在所有文件均受到保护时,退出代码才为 0;任何文件失败时,退出代码为 1(查看 results[].reason)。

相关工具:tools/protect_deliverable.py 用于整个项目范围的保护(生成一个受保护的 PDF 和一个 AES-256 交付压缩包);此技能则用于保护任意一组单独文件。

评论

支持 Markdown