passgen is an API and command-line utility for generating passwords and passphrases.
To install the command-line utility:
git clone -b stable --depth 1 https://github.com/schultz-is/passgen.git
cd passgen
make installTo install the API for use in other projects:
go get github.com/schultz-is/passgen> passgen password
vt7tStRf3SfLV3V3> passgen pw -alnsu
Bc!Eyca9pHmWuRJr> passgen pw 5 10 --alphabet "ACGT"
ATAAG
CATTC
TTGAT
CGGAT
TGTAG
GCGAC
ACATG
TTATT
ACTAT
CCGTA> passgen passphrase
faceless navigate scabby return snorkel cough> passgen pp -ts.
Cranberry.Deskwork.Ramble.Energize.Gloss.Tranquil> passgen pp 5 6 -uw words.txt
TANNING TRICKLE PRECOOK KEEP ARMHOLE
MARITIME LADYLIKE ELM UNDRAFTED BONANZA
EGOTISM MANTIS BANNER MUNICIPAL AMUSING
EVOLUTION WIRING TRACK BLURT GREYHOUND
UNTITLED RURAL SHAKINESS GEOMETRIC ARMREST
WHY OUTCLASS RIVETING OVERLORD UNFIXEDpackage main
import (
"fmt"
"github.com/schultz-is/passgen"
)
func main() {
passwords, err := passgen.GeneratePasswords(
passgen.PasswordCountDefault,
passgen.PasswordLengthDefault,
passgen.AlphabetDefault,
)
if err != nil {
panic(err)
}
for _, password := range passwords {
fmt.Println(password)
}
}package main
import (
"fmt"
"github.com/schultz-is/passgen"
)
func main() {
passphrases, err := passgen.GeneratePassphrases(
passgen.PassphraseCountDefault,
passgen.PassphraseWordCountDefault,
passgen.PassphraseSeparatorDefault,
passgen.PassphraseCasingDefault,
passgen.WordListDefault,
)
if err != nil {
panic(err)
}
for _, passphrase := range passphrases {
fmt.Println(passphrase)
}
}> make test
> make cover> make benchmark
> go tool pprof prof/cpu.prof
> go tool pprof prof/mem.prof> make build
> ./dist/passgen --version