IMPORTANT This library is alpha-quality/stability. Tread carefully!
keepassdb is a python module to provide an API to read and write KeePass 1.x / KeePassX database files.
This project began as a desire to merge together several python keepass projects that provided strengths in different areas (but none of which worked fully as a standalone solution).
Specifically this project owes its roots to:
- kppy by Karsten-Kai König kkoenig@posteo.de,
- python-keepass by Brett Viren brett.viren@gmail.com, and
- kptool by Wakayama Shirou shirou.faw@gmail.com
This project currently supports Python 2.x and 3.x (using 2to3).
This software is licensed under the GPLv3 (or later), in accordance with the upstream libraries and the KeePass project itself.
- Homepage: https://github.com/hozn/keepassdb
- Project Documentation: http://packages.python.org/keepassdb/
- Python 2.6+. (This does work with Python 3.x using 2to3.)
- Setuptools/Distribute
- PyCrypto
- Supports only KeePass V1 databases.
- Currently supports only AES encryption.
- Does not fully support the tree state MetaInfo entries that may be added by other programs.
- Does not work (yet) on Python 3.x
Via easy_install/distribute:
easy_install keepassdb
Or more traditionally:
python setup.py install
from keepassdb import Database
db = Database('./test.kdb', password='test')
# Display a flat list of all groups and the entries in each group.
for group in db.groups:
print group.title
for entry in group.entries:
print "\t-%s" % entry.title
# A locking database will create the .lock file that other KeePass programs expect.
from keepassdb import LockingDatabase
with LockingDatabase('./new.kdb', new=True) as db:
group = db.create_group(title='A new group')
entry = group.create_entry(title='Entry1', username='root', password='test')
# etc.
db.save(password='test')