
Менеджер паролей с шифрованием AES-256 и генерацией ключей scrypt/SHA256, поддерживающий операции создания, редактирования, запроса и смены мастер-пароля с безопасным удалением файлов.
Этот скрипт безопасно шифрует или расшифровывает пароли на диске в пользовательском файле базы данных. Он также предоставляет функциональность для извлечения паролей из ранее созданного файла базы данных. Скрипт принимает мастер-пароль из stdin/из памяти, хеширует пароль с использованием указанного алгоритма хеширования, переданного через параметр -a (scrypt, sha256), и в конечном итоге шифрует/расшифровывает данные файла с помощью AES-256, используя хеш алгоритма в качестве ключа AES-256 (вывод ключа). При передаче аргумента 'scrypt' параметру алгоритма скрипт будет генерировать уникальную соль scrypt для каждого редактирования или создания файла базы данных. Уникально сгенерированная соль кодируется в base64 и добавляется в начало зашифрованных байтов каждого файла базы данных, отделённая символами возврата каретки и перевода строки (для разбора) в качестве метаданных. При использовании параметра смены пароля (-cp) скрипт расшифровывает данные файла базы данных в память, записывает случайные байты*WIPE_PASSES в файл базы данных, урезает файл и, наконец, записывает новые данные, зашифрованные AES-256 с новым хешированным мастер-паролем, в файл базы данных. Это эффективно затрудняет восстановление данных/криминалистический анализ.
Create a database file:
python3 aespasswd_store.py -a scrypt -c <filename>
Change master password for a database file:
python3 aespasswd_store.py -a scrypt -cp <filename>
Edit a database file:
python3 aespasswd_store.py -a scrypt -e <filename>
Query data from within the database file:
python3 aespasswd_store.py -a scrypt -q <filename>
Examples:
# 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.