
AES-256-verschlüsselter Passwort-Manager mit scrypt/SHA256-Schlüsselableitung, der Vorgänge wie Erstellen, Bearbeiten, Abfragen und Ändern des Master-Passworts sowie sicheres Dateilöschen unterstützt.
Dieses Skript verschlüsselt oder entschlüsselt Passwörter sicher auf der Festplatte in einer benutzerdefinierten Datenbankdatei. Es bietet außerdem eine Funktion zum Abrufen von Passwörtern aus einer zuvor erstellten Datenbankdatei. Das Skript nimmt ein Master-Passwort von der Standardeingabe/aus dem Speicher entgegen, hasht das Passwort mit dem angegebenen Hash-Algorithmus (über den Parameter -a: scrypt, sha256) und verschlüsselt/entschlüsselt schließlich die Dateidaten mit AES-256 unter Verwendung des Algorithmus-Hashs als AES-256-Schlüssel (Schlüsselableitung). Wenn das Argument 'scrypt' für den Algorithmus-Parameter angegeben wird, generiert das Skript ein benutzerdefiniertes scrypt-Salt pro Datenbankdatei-Erstellung oder -Bearbeitung. Das eindeutig generierte Salt wird base64-kodiert und als Metadaten jedem Datenbankdatei-verschlüsselten Byte vorangestellt, getrennt durch Wagenrücklauf-Zeilenvorschub-Bytes (zum Parsen). Bei Verwendung des Passwort-Änderungsparameters -cp entschlüsselt das Skript die Datenbankdateidaten in den Speicher, schreibt zufällige Bytes * WIPE_PASSES in die Datenbankdatei, kürzt die Datei und schreibt schließlich die neuen Daten AES-256-verschlüsselt mit dem neuen gehashten Master-Passwort in die Datenbankdatei. Dies erschwert die Datenwiederherstellung/Forensik.
Erstellen einer Datenbankdatei:
python3 aespasswd_store.py -a scrypt -c <filename>
Master-Passwort für eine Datenbankdatei ändern:
python3 aespasswd_store.py -a scrypt -cp <filename>
Bearbeiten einer Datenbankdatei:
python3 aespasswd_store.py -a scrypt -e <filename>
Daten aus der Datenbankdatei abfragen:
python3 aespasswd_store.py -a scrypt -q <filename>
Beispiele:
# Add entry to the database/modify existing data:
pass_id1=password
pass_id2=password
pass_id3=password
# Delete existing data:
pass_id1=delete
pass_id2=delete
# -q parameter: Query data (entering nothing dumps all data):
pass_id1
pass_id3
# Press ctrl+D (linux) or ctrl+Z (windows) to save data from stardard input.