/grasp

Create strong passwords using words that are easy for you to remember. A password manager that does not require any type of storage

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Grasp

Go Report Card     Go Coverage     Twitter

Create strong passwords using words that are easy for you to remember

A way to circumvent password complexity rules and restrictions while only needing to remember something memorable.

A password manager that does not require any type of storage

Cross Platform simple and secure password generator / manager that does not require a file/cloud/whatever archive.

Passwords become complicated (one capital letter, one number, one punctuation mark, one emoji, etc.)...

  • It's impossible to use and remember different passwords for all of your accounts?
  • You often reuse the same passwords on various accounts?
  • Yes! There are a lot of greats passwords managers tools

Using grasp all you need to remember are:

your favorite words! anything that is easy for you to remember! (a poem? a song? a sequence of insults? :bowtie:)

How to install

brew tap lucasepe/grasp
brew install grasp

Ready-To-Use Releases

Here you can find grasp already compiled for: MacOS, Linux and Windows.


How to use (examples)

grasp google.com pinco.pallo@gmail.com vercingetorige
>qhOzrL^*+IF
grasp linkedin.com pinco.pallo@gmail.com hope to find the job of my life!
y@xV4.w$|mIp
grasp -s L --no-symbols amazon.com leonida@sparta.com this is lambda!
sRZg5qOvK2GnDLJ9

Using these parameters grasp will generate a password:

  • unique, complex and safe
  • that meets all validation standards (uppercase, lowercase, numbers and special characters)

Who cares... I have a secure online password manager...

Using grasp does not stop you from managing your passwords using a secure 'wallet' and in fact this is encouraged.

What grasp gives to you is:

  • a simple way to generate good quality and safe passwords for websites and other services
  • a secure mechanism to retrieve your passwords
  • an easy system for managing your passwords

⚠️ WARNING!

To recreate the same password for a given account you must make sure you don't forget the original words ​​you used.

If you enter different words, grasp will produce a different password! (the order of the words and the difference between upper and lower case is also important)

How does grasp works?

The sequence of words you type after the command is used as salt (the first word) and secret (all remaining words) to generate a secret key using the Argon2 key derivation function.

The result of this encryption is used as key for a cryptographically secure pseudorandom number generator (CSPRNG).

Finally the password is composed picking characters, digits and symbols using the integers generated by this CSPRNG.

  • all these calculations are done "on the fly" every time you request it
  • this is why grasp does not need any archive


Credits

A huge thank you to:

Christopher Wellons for his hints about security and help in replacing the Mersenne Twister PRNG algorithm by a cipher.Stream CSPRNG with cryptographic AES.