個人情報マスキングツール(Web UI + CLI)
Project description
pymasking — 個人情報マスキングツール
文書・画像・クリップボードに含まれる個人情報を自動検出してマスキングします。
Web UI と CLI の両方で動作します。
デモ
テキストタブ — テキストを直接入力してマスキング
ファイルタブ — ドラッグ&ドロップでファイルをマスキング
クリップボード画像タブ — スクリーンショットをそのままマスキング
動作環境
| 項目 | 要件 |
|---|---|
| OS | Windows 10 / 11(64bit) |
| Python | 3.9 以上 |
インストール
pip install pymasking
Tesseract OCR バイナリのインストール(画像・PDF の OCR マスキングに必要)
pip install だけでは OCR 機能は使えません。Tesseract OCR バイナリを別途インストールしてください。
1. インストーラーをダウンロード
以下のページから Windows 用インストーラーを取得します。
2. 日本語データを含めてインストール
インストーラー実行中、「Additional language data」のリストで
「Japanese (jpn)」 にチェックを入れてからインストールします。
3. PATH を通す
インストール完了後、Tesseract のインストール先フォルダをシステムの PATH 環境変数に追加します。
C:\Program Files\Tesseract-OCR
確認方法: コマンドプロンプトで
tesseract --versionが実行できれば完了です。
起動方法
Web UI(推奨)
masking
ブラウザで http://127.0.0.1:55963 が自動的に開きます。
ブラウザのタブ・ウィンドウを閉じるとサーバーも自動終了します。
CLI
python -m pymasking.cli.main mask report.docx
python -m pymasking.cli.main mask report.docx --mode pigpen
python -m pymasking.cli.main unmask report_masked.txt
Web UI の使い方
共通操作
マスキング方式の選択
画面上部の 4 つのボタンで方式を選択します。
ボタンをクリックするとマスキング前後の例が表示されます。
| ボタン | 効果 |
|---|---|
| 伏字(●) | 検出した情報を ● で塗りつぶす(既定) |
| 一意性保持 | 人物001 のように種別+連番に置換 |
| ピッグペン暗号 | 暗号化して 【人物:⊞⊟⊠⊡:】 形式で保存。後から復号可能 |
| 復号化 | ピッグペン暗号で保護されたテキスト・ファイルを元に戻す |
復号化 を選択すると、マスキング対象のチェックボックスは自動的にグレーアウトされます。
マスキング対象の絞り込み
実行ボタンの直上にあるチェックボックスで、マスクする情報の種別を選べます。
全て ON の場合はすべてのカテゴリを対象とします。
テキストタブ
- テキストエリアに文章を貼り付け(Ctrl+V 可)
- 必要に応じてマスキング対象のチェックボックスを調整
- マスキング実行 または 復号化実行 をクリック
- 下の結果欄に変換後テキストが表示される
- 結果をコピー で clipboard にコピー
ファイルタブ
- ドロップエリアにファイルをドラッグ&ドロップ、またはクリックして選択
(対応形式: docx / xlsx / pptx / pdf / jpg / png / bmp / txt / csv / json 等) - マスキング対象・追加オプションを確認
- マスキング実行 または 復号化実行 をクリック
- ボタンが赤く点滅し「実行中」と表示されます
- 下のプログレスバーで処理状況を確認できます
- 処理完了後、ボタンがオレンジ色の「ダウンロード」に変わります
- ダウンロード をクリックするとマスキング済みファイルが保存されます
クリップボード画像タブ
- スクリーンショットを撮影してコピー(PrintScreen など)
- 貼り付けエリアをクリックしてから Ctrl+V で画像を貼り付け
- マスキング実行 をクリック
- ボタンが赤く点滅し「実行中」と表示されます
- OCR でテキストを認識し、黒矩形で塗りつぶします
- 処理完了後、「ダウンロード」をクリックして保存
対応ファイル形式
| 形式 | 処理方法 |
|---|---|
.txt .csv .json .xml .md .log |
テキスト置換 |
.docx .xlsx .pptx |
テキスト置換(書式保持) |
.pdf |
テキスト座標を検出 → 黒矩形で塗りつぶし |
.jpg .jpeg .png .bmp |
Tesseract OCR で検出 → 黒矩形で塗りつぶし |
マスキング方式
| 方式 | 出力例 | 復号 |
|---|---|---|
| 伏字(デフォルト) | ●●● |
不可 |
| 一意性保持 | 人物001 |
不可 |
| ピッグペン暗号 | 【人物:⊞⊟⊠⊡:】 |
可能(復号化実行 ボタンで復号) |
画像・PDF は方式に関わらず常に視覚的塗りつぶし(黒矩形)になります。
検出カテゴリ
人物名 / 組織名 / 住所 / メールアドレス / 電話番号 / 日付 / 金額 / SNS アカウント / 特許番号 / シリアル番号 / 型番
カスタム辞書
pymasking/data/dict/custom_dict.txt にタブ区切りで追加すると独自の固有名詞を検出できます:
山田太郎 person
株式会社サンプル org
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymasking-1.0.0.tar.gz.
File metadata
- Download URL: pymasking-1.0.0.tar.gz
- Upload date:
- Size: 469.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15ad4c9561cadcdf0c17a934bedf3cfdac2abb26a4da50cad55d5dff2121d8b7
|
|
| MD5 |
62022b96d82d1a288760a708fa81d200
|
|
| BLAKE2b-256 |
894c8143785ad5987b1922ee48f6d0e354b7c60fda8580fd2bed56177832d954
|
Provenance
The following attestation bundles were made for pymasking-1.0.0.tar.gz:
Publisher:
publish.yml on kirin123kirin/pymasking
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pymasking-1.0.0.tar.gz -
Subject digest:
15ad4c9561cadcdf0c17a934bedf3cfdac2abb26a4da50cad55d5dff2121d8b7 - Sigstore transparency entry: 1385637883
- Sigstore integration time:
-
Permalink:
kirin123kirin/pymasking@311e2dc4ad6f9b8d656e82faaacd35d10f2178e0 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/kirin123kirin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@311e2dc4ad6f9b8d656e82faaacd35d10f2178e0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pymasking-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pymasking-1.0.0-py3-none-any.whl
- Upload date:
- Size: 471.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4323b1d1fa0d0ad9b5aa367d7cd56d11248e118b67dfef067077b6a114b3aa1d
|
|
| MD5 |
fdd4ff029d876c7ab0e508e36dc8753d
|
|
| BLAKE2b-256 |
3d870ec893adb942b61fa509f7548407c89e718f0db213ec3f464d6661cd7aea
|
Provenance
The following attestation bundles were made for pymasking-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on kirin123kirin/pymasking
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pymasking-1.0.0-py3-none-any.whl -
Subject digest:
4323b1d1fa0d0ad9b5aa367d7cd56d11248e118b67dfef067077b6a114b3aa1d - Sigstore transparency entry: 1385637916
- Sigstore integration time:
-
Permalink:
kirin123kirin/pymasking@311e2dc4ad6f9b8d656e82faaacd35d10f2178e0 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/kirin123kirin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@311e2dc4ad6f9b8d656e82faaacd35d10f2178e0 -
Trigger Event:
release
-
Statement type: