Skip to content

schultz-is/passgen

Repository files navigation

passgen

Builds Go Report Card GoDoc License

passgen is an API and command-line utility for generating passwords and passphrases.

Installation

To install the command-line utility:

git clone -b stable --depth 1 https://github.com/schultz-is/passgen.git
cd passgen
make install

To install the API for use in other projects:

go get github.com/schultz-is/passgen

Examples

Using the command-line utility

> 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 UNFIXED

Using the API

package 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)
	}
}

Open in Go Playground

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)
	}
}

Open in Go Playground

Tests

> make test
> make cover

Benchmarks

> make benchmark
> go tool pprof prof/cpu.prof
> go tool pprof prof/mem.prof

Build

> make build
> ./dist/passgen --version

Packages

No packages published

Contributors 2

  •  
  •