A collection of tools to make diceware passphrase conform with "password policy"
- (2017.05.22) Allow "weak" password generation.
>>> from diceware_utils.generate import GeneratePassword
>>> GeneratePassword().generate(weak=True)
'+"75ImposeRompSudoku'
pip install diceware_utils
or
pipenv install -e git+https://github.com/patarapolw/diceware_utils.git#egg=diceware_utils
>>> from diceware_utils.policy import Conformize
>>> conformize = Conformize()
>>> conformize.conformize(['unlikely', 'piezo', 'electric', 'grounds'])
';U$Piezo33lGrounds'
>>> conformize.update_policy(new_policy)
>>> from diceware_utils.wordlist import Wordlist
>>> Wordlist().get_random_word()
'ladybug'
>>> from diceware_utils.generate import GeneratePassword
>>> GeneratePassword().generate()
',Ab17HaRLanky-RoyalS'
- Policy is now updateable. It is of format:
both_upper_and_lower: true
digit_count: 2
punctuation_count: 2
length:
min: 10
max: 20
leetspeak.yaml
, policy.yaml
and Conformization algorithm are original. Wordlists are taken from pwgen-passphrase, which belongs to the respective authors.
Main wordlist to generate the password is eff-long.txt
, which is from Electronic Frontier Foundation.
Another interesting wordlist in this series is aspell-en.txt
which is maintained by Kevin Atkinson. I exported these two files to the Android app below.
The idea of diceware password is from https://xkcd.com/936/.
http://diceware-utils.herokuapp.com
Please see Keepass DX - memorable password -- an Android password manager with this generator.
I might plan to create a dedicated app for this password generator (probably without manager), because of the relatively slow start-up time of the SentenceMaker.
- randomsentence - a random sentence maker based on a list of keywords.