Fork me on GitHub

How does it work?

Titan runs on the command line. It's not meant to hold your hand, however Titan comes with a manual page.

Titan uses OpenSSL library to perform the encryption. AES encryption is used with 256 bit keys. Password database is also protected from tampering by using a keyed-hash message autentication code (HMAC). Unique, cryptographically random initialization vector is used during the encryption. New initialization vector is generated each time the password database is encrypted.

For key derivation, PKCS5_PBKDF2_HMAC is used along with salt and SHA256 hash algoritm.

Password storage

Titan uses SQlite for storing the passwords. Database schema is simple and easy to make compatible with other password managers.


Titan is available on Github.

To install Titan from the source code, for example, on Ubuntu:

sudo apt-get install libsqlite3-dev
sudo apt-get install libssl-dev
cd titan-directory
sudo make install

Documentation and support

For documentation see titan --help and man titan(1).

Bug reports and feature request, please use the project page. I do also read email. If possible, do use PGP. Here's my public key.

There's also an IRC support channel #titanpasswordmanager@Freenode. Welcome.

Simple examples how to use Titan:

Create a new database:
 titan --init /home/niko/passwords.db
Add new password entry, interactively
 titan --add
Encrypt the database
 titan --encrypt

To view entries in the database
 titan --decrypt /home/niko/passwords.db
 titan --list-all
Or try to search for entries
 titan --find "My search"
After working with the decrypted database, remember to encrypt it
 titan --encrypt

See man titan(1) or titan --help for more information.

You may also want to follow me on Twitter.


Donations are needed and very useful. Escpecially in commercial environment, please consider a donation by Bitcoin. 1Dhr2THM3jJeX2x8zeo6ANhYj5pa4iD1iH

Contact me if you want to donate some other way. Packaging Titan for your favorite GNU/Linux distribution is a great way to contribute.