ローカル完結のパスワード管理アプリ
python app.py
- 追加・削除・IDコピー・PWコピー・保存(ダミー)まで実装済み
- items を JSON に保存
- 起動時に JSON を読み込んで復元
- 追加 → 保存までの一貫処理
- 削除 → 保存までの一貫処理
- 編集機能の追加
- 未保存状態で終了しようとした場合の警告表示
- Listbox 再描画ロジックを整理
- データ変更時の表示ズレを防止
- 検索機能の追加
- 選択状態がない場合の操作ガード実装
- Frame + grid による全体レイアウト整理
- 上:検索・リスト表示
- 下:操作ボタン群
- フォント・余白・ボタンサイズの統一
- 検索バー配置と視認性改善
- ラベル・区切り線による視認性向上
- シンプル配色+アクセントカラーによるデザイン改善
Version 3 では、Locka をローカル専用パスワード管理アプリとして 現実的な脅威に対して十分な安全性を確保することを目的に、 セキュリティ機能を実装。
- アプリ起動時にマスターパスワードを要求
- 初回起動時は新規パスワードを設定(2回確認)
- パスワード自体は保存せず、復号できるかどうかで認証
- 保存データは Fernet + PBKDF2(SHA-256) で暗号化
- ランダムな salt + 十分な iteration を使用
- 正しいマスターパスワードがなければ復号不可
- マスターパスワードを忘れた場合、復旧不可
- 一定時間操作がない場合、自動でロック
- ロック中は操作不可
- 再度マスターパスワード入力で解除
- 状態が分かるように「locked」表示を実装
- キーボード / マウス操作をフックして「最終操作時刻」を更新
- OS 時刻変更の影響を受けないよう
time.monotonic()を使用
- 実データ・暗号化ファイル・バックアップ類を
.gitignoreに追加 - 誤って秘密情報をコミットできない構成に整理
- Git 管理対象は コードと設計のみ
- 本アプリは ローカル利用・非ネットワーク前提
- 物理的覗き見・マルウェア対策は OS 側に委ねる
- アプリ側では「放置」「誤操作」「誤コミット」のリスクを低減
- マスターパスワードを忘れるとデータは復号できません
- 本アプリは学習・個人利用目的で作成されています
- v1: 基本CRUD
- v2: UI改善・永続化・操作性向上
- v3: セキュリティ実装・事故防止