dpg
dpg copied to clipboard
The Deterministic Password Generator
DPG - Deterministic Password Generator
DPG is a deterministic password generator that does not store data or keep state. Its output is based purely on user input.
To Build C++ executable
$ cd c++ && make
To Build Go cli executable
$ cd go/cli && make
To Build Java jar
$ cd java && ./build.sh
To Run Go, Python, Java or C++ version
$ dpg -s "The sentence" -w word
$ python3 dpg.py
$ java -jar dpg.jar
$ dpg "The sentence" word
Usage Recommendations
- Use the same sentence everywhere. Commit it to memory.
- Or, use several sentences. One for work passwords, another for personal ones, etc.
- Use a different word for different sites. Be consistent with case (e.g. google, facebook, twitter, etc.)
- If you need to change all of your passwords, change the sentence.
- If you need to change one site password, change the word.
Screenshot of Java GUI implementation

Why traditional password managers are flawed
Moved to blog.
Notes
- DPG is based on my earlier SHA1_Pass software in 2009.
- The C++ and Go implementations are intended for testing and validation only.