关于 protect-with-password
Protect With Password 可生成或接收一个密码,为指定文件创建受保护副本,且不修改原件。PDF 使用原生 AES-256,其他文件使用 AES-256 7-Zip 压缩包;若无法使用该加密方式则报告失败,不降级使用弱加密。
主要功能
- 01生成或复用同一个密码
- 02使用原生 AES-256 保护 PDF
- 03将其他文件封装为 AES-256 7-Zip 压缩包
- 04创建副本而不修改原件
- 05以受限文件权限保存密码
- 06加密不可用时报告失败,不降级
适用场景
- 01用同一个密码保护一组指定文件
- 02创建受密码保护的 PDF 副本
- 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