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

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

Go get

$ go get -u github.com/lucasepe/grasp

Ready-To-Use Releases

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


How to use (examples)

$ grasp google.com [email protected] Vercingetorige! 
Xj>_Cl.K3nRa
$ grasp linkedin.com [email protected] hope to find the job of my life!
[email protected]$|mIp
$ grasp -s L --no-symbols amazon.com [email protected] 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

⚠️ NOTE!

The v0.2.0:

  • replaces the PBKDF2 key generation with the stronger Argon2
  • replaces the PRNG with a cryptographically secure pseudorandom number generator (CSPRNG)

this implies a breaking change; see CHANGELOG for more details.



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.

Owner
Luca Sepe
𝕋𝕖𝕔𝕙 - Golang | C | [Java]. Design multi-platform pipelines, web scrapers, data ingestion tools.
Luca Sepe
Similar Resources

gup aka Get All Urls parameters to create wordlists for brute forcing parameters.

gup aka Get All Urls parameters to create wordlists for brute forcing parameters.

Description GUP is a tool to create wrodlists from the urls. Purpose The purpose of this tool is to create wordlists for brute forcing parameters. Ins

Feb 25, 2022

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Jan 6, 2023

A fast and easy to use URL health checker ⛑️ Keep your links healthy during tough times

A fast and easy to use URL health checker ⛑️ Keep your links healthy during tough times

AreYouOK? A minimal, fast & easy to use URL health checker Who is AreYouOk made for ? OSS Package Maintainers 📦️

Oct 7, 2022

An easy-to-use SHA-1 hash-cracker written in Golang.

An easy-to-use SHA-1 hash-cracker written in Golang.

wrench - An easy-to-use SHA-1 hash-cracker. Wrench is an SHA-1 hash-cracker that relies on wordlists for comparing hashes, and cracking them. Before W

Aug 30, 2021

Optimus is an easy-to-use, reliable, and performant workflow orchestrator for data transformation, data modeling, pipelines, and data quality management.

Optimus Optimus is an easy-to-use, reliable, and performant workflow orchestrator for data transformation, data modeling, pipelines, and data quality

Jan 6, 2023

Golang library to make sandboxing AppImages easy

aisap AppImage SAndboxing Project: a Golang library to help sandbox AppImages with bwrap What is it? aisap intends to be a simple way to implement And

Nov 16, 2022

Easy-to-use Fortnite Launcher for DLL Injection & SSL-Bypass

Easy-to-use Fortnite Launcher for DLL Injection & SSL-Bypass

Easy-to-use Fortnite Launcher for DLL Injection & SSL-Bypass

Dec 26, 2022
Comments
  • Idea: put generated passwords in a Vault kv store?

    Idea: put generated passwords in a Vault kv store?

    Love this. I generated passwords for a long time using </dev/urandom tr -dc 'A-Za-z0-9!"}?!*)' | head -c 32 that I ended up putting in a 😱 file.

    I have moved them to a Vault instance at home, but I still need to generate them and grasp seems pretty cool.

    I immediately thought about extending it to use the Vault API as a persistent secure storage.

    creating: phrase->grasp->generates secret password->puts it in vault retrieving: phrase->grasp->maps to kv key in vault->retrieves secret password

    This way, the user would only need to remember the phrase and not the password.

    Any thoughts?

Find secrets and passwords in container images and file systems
Find secrets and passwords in container images and file systems

Find secrets and passwords in container images and file systems

Jan 1, 2023
A Go Library For Generating Random, Rule Based Passwords. Many Random, Much Secure.
A Go Library For Generating Random, Rule Based Passwords. Many Random, Much Secure.

Can Haz Password? A Go library for generating random, rule based passwords. Many random, much secure. Features Randomized password length (bounded). T

Dec 6, 2021
linenoise is a library that generates strings of random characters that can be used as reasonably secure passwords.

linenoise linenoise is a library that generates strings of random characters (herein called a "noise") that can be used as reasonably secure passwords

Dec 7, 2022
Simple CLI to generate passwords

pwdrng Simple CLI to generate passwords $ pwdrng Copied password to clipboard: bfx861[X<26-b^UT Installation and Usage With Homebrew $ brew tap docto

Apr 8, 2022
PHP functions implementation to Golang. This package is for the Go beginners who have developed PHP code before. You can use PHP like functions in your app, module etc. when you add this module to your project.

PHP Functions for Golang - phpfuncs PHP functions implementation to Golang. This package is for the Go beginners who have developed PHP code before. Y

Dec 30, 2022
An easy-to-use XChaCha20-encryption wrapper for io.ReadWriteCloser (even lossy UDP) using ECDH key exchange algorithm, ED25519 signatures and Blake3+Poly1305 checksums/message-authentication for Go (golang). Also a multiplexer.

Quick start Prepare keys (on both sides): [ -f ~/.ssh/id_ed25519 ] && [ -f ~/.ssh/id_ed25519.pub ] || ssh-keygen -t ed25519 scp ~/.ssh/id_ed25519.pub

Dec 30, 2022
Allows you to replace a secret in a file using secrets manager

secrets inserter Allows you to replace a secret in a file using secrets manager. ::SECRET:secret-name:SECRET:: will be replaced with your secret-name

Dec 12, 2021
A RSA signing server model, allows to create valid signed certificates that cant be modified
A RSA signing server model, allows to create valid signed certificates that cant be modified

Omega Description a RSA signing server model, allows to create valid signed certificates that cant be modified Requirements MySQL Server GoLang 1.17 I

Nov 15, 2021
Go library to create/verify armored SSH signatures

Armored ssh signatures in go Package sshsig implements signing/verifying armored SSH signatures. You can use this package to sign data and verify sign

Sep 18, 2022