Skip to content
better repeatable password generation
C Python Assembly Shell C++ CMake PLSQL
Find file
New pull request
Latest commit f2e87f3 @habnabit Pass travis environment to coveralls.
Also, remove an unnecessary deps line.
Failed to load latest commit information.
.travis Fix the travis builds.
admin Fix the travis builds.
contrib Remove the passacre agent.
docs Include the README in the docs.
libpassacre Run in counter mode with strict aliasing.
passacre Parameterize more tests.
.coveragerc Rejigger coverage so that it works again.
.gitignore Ignore more stuff.
.travis.yml Fix the travis builds.
COPYING Add libpassacre things to COPYING.
README.rst Add a coverity shield.
TODO.rst Update TODO. Refactor cffi build stuff to suck less.
passacre.yaml.example Add word-based password generation. Fix building all the extension crap.
tox.ini Pass travis environment to coveralls.



passacre = password massacre (i.e. what happens when you use the same password on every site)

Passacre is a method of repeatably deriving a different secure password for every site you use.

The way this works is that passacre takes the site's name, your username, and your master password and runs them through a cryptographically secure hash function (either the Keccak sponge function from SHA-3 or Skein/Threefish) to produce a password unique to that site. Given the same inputs (site name, username, and master password), this process will always produce the same password. This means that your site passwords never need to be persisted, and since they're always ephemeral, you don't have a file containing your passwords that's vulnerable to theft.

Minimal documentation is available on readthedocs.

Here's how to use it for now:

# for both keccak and skein generation:
pip install 'passacre'
# to be able to copy passwords, add the 'clipboard' extra:
pip install 'passacre[clipboard]'
# for YubiKey two-factor authentication, add the 'yubikey' extra:
pip install 'passacre[yubikey]'
# then set it up:
mkdir -p ~/.config/passacre
passacre init ~/.config/passacre/passacre.sqlite
# then finally:
passacre generate
Something went wrong with that request. Please try again.