
AES-256 암호화된 비밀번호 관리자로, scrypt/SHA256 키 파생을 지원하며 생성, 수정, 조회 및 마스터 암호 변경 작업과 안전한 파일 삭제 기능을 제공합니다.
이 스크립트는 사용자 지정 데이터베이스 파일 내의 비밀번호를 디스크에 안전하게 암호화하거나 복호화합니다. 또한 이전에 생성된 데이터베이스 파일에서 비밀번호를 검색하는 기능을 제공합니다. 이 스크립트는 stdin/메모리에서 마스터 비밀번호를 입력받아, 알고리즘 매개변수/-a (scrypt, sha256)에 지정된 해싱 알고리즘을 사용하여 비밀번호를 해싱한 후, 알고리즘의 해시를 AES-256 키(키 유도)로 사용하여 파일 데이터를 AES-256으로 암호화/복호화합니다. 알고리즘 매개변수에 'scrypt' 인수를 제공하면 스크립트는 데이터베이스 파일 편집 또는 생성 시마다 사용자 지정 scrypt 솔트를 생성합니다. 고유하게 생성된 솔트는 base64로 인코딩되어 각 데이터베이스 파일의 암호화된 바이트 앞에 메타데이터로 캐리지 리턴 라인 피드 바이트(파싱용)로 구분되어 추가됩니다. 비밀번호 변경 매개변수/-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>
예제:
# 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.