
AES-256暗号化パスワードマネージャー。scrypt/SHA256鍵導出を採用し、作成、編集、検索、マスターパスワード変更操作をサポート。安全なファイルワイプ機能付き。
このスクリプトは、カスタムデータベースファイル内のパスワードを安全に暗号化または復号化します。また、以前に生成されたデータベースファイルからパスワードを取得する機能も備えています。スクリプトはマスターパスワードを標準入力/メモリから受け取り、algorithmパラメータ/-aで指定されたハッシュアルゴリズム(scrypt、sha256)を使用してパスワードをハッシュ化し、最後にそのアルゴリズムのハッシュをAES-256キー(鍵導出)として使用してファイルのデータをAES-256暗号化/復号化します。algorithmパラメータに'scrypt'引数を指定すると、データベースファイルの編集または作成のたびに、カスタムのscryptソルトが生成されます。一意に生成されたソルトはbase64エンコードされ、各データベースファイルの暗号化バイトの前に、メタデータとしてCRLFバイトで区切られて付加されます(パース用)。パスワード変更パラメータ/-cpを使用すると、スクリプトはデータベースファイルのデータをメモリに復号化し、ランダムバイト*WIPE_PASSESをデータベースファイルに書き込み、ファイルを切り詰め、最後に新しいマスターパスワードのハッシュでAES-256暗号化された新しいデータをデータベースファイルに書き込みます。これにより、データの復旧/フォレンジックが困難になります。
データベースファイルを作成:
python3 aespasswd_store.py -a scrypt -c <filename>
データベースファイルのマスターパスワードを変更:
python3 aespasswd_store.py -a scrypt -cp <filename>
データベースファイルを編集:
python3 aespasswd_store.py -a scrypt -e <filename>
データベースファイル内のデータをクエリ:
python3 aespasswd_store.py -a scrypt -q <filename>
例:
# データベースにエントリを追加/既存データを変更:
pass_id1=password
pass_id2=password
pass_id3=password
# 既存データを削除:
pass_id1=delete
pass_id2=delete
# -qパラメータ: データをクエリ(何も入力しないとすべてのデータをダンプ):
pass_id1
pass_id3
# 標準入力からのデータを保存するには、Ctrl+D(Linux)またはCtrl+Z(Windows)を押します。