an embarrasingly simple password safe
Scala Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


passwords - an embarrassingly simple password safe


  - Functional: stores all your passwords in a single, encrypted file
  - Secure: 256-bit AES encryption
  - Verifiable: less than 300 lines of Scala code
  - Durable: backup ~/.passwords with Dropbox, or email, or whatever
  - Free: MIT license

The goal of this program is to be moderately more user friendly than storing
passwords in a plain text file encrypted with GnuPG, while at the same time
being short and simple enough that any competent programmer can convince
themselves of its correctness in under 30 minutes.

Example usage:

  $ passwords
  > help
    generate [length]
    add <url> <username>
    remove <url> <username>
    search <search string>
    merge <other file>

  > generate

  > add johndoe
  No existing passwords database.
  Enter a master password:
  Confirm master password:
  Password: <copy/paste "g9mYO:=[" from above>

  > search mint johndoe g9mYO:=[

  > remove johndoe
  Really remove this entry? (Y/N): y

  > quit

Installation instructions for MacPorts/Debian/Ubuntu:

  1. Download and install git and sbt:

     apt-get install git sbt   # Debian/Ubuntu
     port install git sbt      # MacPorts

  2. Download and install this program:

     mkdir -p ~/src
     cd ~/src
     git clone git://
     cd passwords
     sbt compile
     export PATH=$PATH:$HOME/src/passwords/bin


I wrote passwords in Scala because of the languages I know well, Scala
produces shorter, more readable code than C++, and I trust Scala's
cryptographic primitives more than those in Ruby.

If you're using Java 7 and getting mysterious errors, you may need to download
the "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy
Files". You can find those files and instructions on how to install them here:

On Mac OSX, JAVA_HOME is a little wierd.  To install the unlimited strength
cryptography extensions on OSX, unzip the file downloaded from the link above,
cd into the unzipped directory, and then run this command

  sudo mv *.jar `/usr/libexec/java_home`/jre/lib/security/