Virtual Keyring
===============

:author: Olivier Grisel <olivier.grisel@ensta.org>
:description: Generate rebuildable strong passwords

Oneliner overview::

  domain_password == base62(sha1(master_password + domain_key))[:8]


Goal
----

This utility script helps generate a set of rebuildable domain-specific strong
passwords out of a single easy to remember master password and domain specific
keys such as "login@host".

The generated passwords are strong since they use 8 characters out of a 62
characters long alphabet (lowercase and uppercase letters + digits) that are not
to be found in any dictionary.

You can always re-generate your passwords by taking the base 62 encoding of the
sha1 hash of the concatenation of your master password and domain key.


Install
-------

With setuptools_::

  $ easy_install -U virtualkeyring

.. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools


Usage
-----

Use the interactive command-line tool ``vkr`` that should now be in your PATH,
and type in you master password and domain key::

  $ vkr
  master password: mysecret
  domain key [e.g. 'login@host']: foobar@example.com
  your password is: hRnf6udB
  please clean your console (ctrl-L) after usage


Online version
--------------

I plan to run a pylons_-based version of the script at
https://oliviergrisel.org/virtualkeyring . However you should not trust my server
but rather run your own instance of the app on a server you trust::

  $ easy_install pylons-virtualkeyring
  $ paster create -t virtualkeyring myvkrinstance
  $ cd myvkrinstance
  $ paster serve production.ini

.. _pylons: http://www.pylonshq.com
