Skip to content

Password Manager based on recreating a password from a wordlist based on your master password and account name.

License

Notifications You must be signed in to change notification settings

MedStuCoder/Password-ManaGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Password-ManaGen

This is neither a password manager (as in saving your passwords somewhere) nor simply a random password generator but both at the same time. The main focus is to NOT STORE ANY kind of data pertaining to your passwords.

It accepts a master password from which a Base32 token for an HOTP algorithm is securely (hashed and salted) generated. It then asks for an "Account Name" which is also hashed to generate a Counter number for the HOTP. Then the output of the HOTP is also hashed and from the hash multiple index numbers are derived to look up in a Diceware compatible wordlist (Any wordlist works really, but since Diceware is the standard for password it is used).

The EFF Wordlist is built into the code but as mentioned you can use any diceware compatible wordlist or even others such as Bitcoin's Bip39 wordlists Although the latter would need some small modifications to the code. You can use Wordlist_to_JSON to convert other Diceware lists to JSON to use with the code.

The words are selected from the wordlist and some modifications such as capitalizing specific letters (based on the password+key hash) and adding some special characters including numbers (again, in a repeatable manner) are applied and the final password is printed out. More details can be found in the code's comments.

The result will be the same given the correct master password and account name, there are no "wrong" results as the code is completely blind and does not store anything.

The only dependency is PyOTP.