protect-with-password について
Protect With Passwordは、1つのパスワードを生成または受け取り、指定ファイルの原本を変更せずに保護されたコピーを作成します。PDFにはネイティブのAES-256を使い、その他のファイルはAES-256の7-Zipアーカイブにします。弱い暗号方式には切り替えず、利用できない場合は失敗として報告します。
主な機能
- 01パスワードの生成または再利用
- 02PDFをネイティブAES-256で保護
- 03その他のファイルをAES-256の7-Zipアーカイブに格納
- 04原本を変更せずコピーを作成
- 05制限付きファイル権限でパスワードを保存
- 06弱い方式に切り替えず失敗を報告
活用シーン
- 01指定ファイル一式を1つのパスワードで保護
- 02パスワード保護されたPDFコピーの作成
- 03Office文書などを暗号化アーカイブに格納
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill protect-with-passwordインストール後、Claude Code で/protect-with-passwordを入力して読み込まれたか確認します。
詳細
パスワードで保護
強力なパスワードを1つ生成し、参照されたすべてのファイルを、ファイルの種類に応じて保護します。決定論的で非破壊的(元のファイルには一切手を加えません)。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の概要を、標準エラー出力にパスワードのバナーを表示し、さらに(
--no-password-fileを指定しない限り)パスワードを chmod 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つでも失敗した場合は 1 になります(results[].reason を確認してください)。
関連:tools/protect_deliverable.py は案件全体を対象とする処理(保護されたPDF 1つと AES-256 の納品物ZIP)を行います。このスキルは、任意のファイル群を個別に保護します。