Giter VIP home page Giter VIP logo

go-generate-password's Introduction

go-generate-password

GoDoc Build Status Go Report Card Release codecov

Password generator written in Go. Use as a library or as a CLI.

Usage

CLI

go-generate-password can be used on the cli, just install using: go get github.com/m1/go-generate-password/cmd/go-generate-password

To use:

➜  go-generate-password --help
go-generate-password is a password generating engine written in Go.

Usage:
  go-generate-password [flags]

Flags:
      --characters string   Character set for the config
      --exclude-ambiguous   Exclude ambiguous characters (default true)
      --exclude-similar     Exclude similar characters (default true)
  -h, --help                help for go-generate-password
  -l, --length int          Length of the password (default 24)
      --lowercase           Include lowercase letters (default true)
      --numbers             Include numbers (default true)
      --symbols             Include symbols (default true)
  -n, --times int           How many passwords to generate (default 1)
      --uppercase           Include uppercase letters (default true)

For example:

➜  go-generate-password
5PU?rG-w9YkDus4?AbmKd+Z*

More detailed example:

➜  go-generate-password -n 5 --length 16 --symbols=false
X89R4HvATgg7HSKk
YMwMPnXp7cnMTNdZ
RZWKAvyxFxDWRB8u
PvKb6uP4N7vAMVsD
KHttvhevGrTYptM5

Example using custom character set:

➜  go-generate-password -n 5 --characters=abcdefg01       
10cecfcfe0bea1fdcbb1afcf
bfcgbgg0dccafdacdaa1de01
gb0ggcffcefae0bb1ac0bbge
abafbc1bbaff0cfbdgaee11d
1fge0fcbccabda0g0a01ffc0

Library

To use as a library is pretty simple:

config := generator.Config{
		Length:                     16,
		IncludeSymbols:             false,
		IncludeNumbers:             true,
		IncludeLowercaseLetters:    true,
		IncludeUppercaseLetters:    true,
		ExcludeSimilarCharacters:   true,
		ExcludeAmbiguousCharacters: true,
	}
g, _ := generator.New(&config)

pwd, _ := g.Generate() 
// pwd = 8hp43B2R7gaXrZUW

pwds, _ := g.GenerateMany(5)
// pwds = [
//   dnPp2TW2e8wmkAwT,
//   XVYwWn25xuNwhUTy,
//   vQ8aSrustQzxQCkA,
//   AuT4fu5RU9TtxEUR,
//   muDwwBRpKpC5BcHr,
// ]

pwd, _ = g.GenerateWithLength(12)
// pwd = HHhpzRGsmEWt

pwds, _ := g.GenerateManyWithLength(5, 12)
// pwds = [
//   s5TKYPdgRzvZ
//   wZFgzs8PUvRg
//   tU73qZ9sPzEs
//   mMaYU6hkvxPQ
//   KBNZ2D7cVQS2
// ]

The library also comes with some helper constants:

const (
	// LengthWeak weak length password
	LengthWeak = 6

	// LengthOK ok length password
	LengthOK = 12

	// LengthStrong strong length password
	LengthStrong = 24

	// LengthVeryStrong very strong length password
	LengthVeryStrong = 36

	// DefaultLetterSet is the letter set that is defaulted to - just the
	// alphabet
	DefaultLetterSet = "abcdefghijklmnopqrstuvwxyz"

	// DefaultLetterAmbiguousSet are letters which are removed from the
	// chosen character set if removing similar characters
	DefaultLetterAmbiguousSet = "ijlo"

	// DefaultNumberSet the default symbol set if character set hasn't been
	// selected
	DefaultNumberSet = "0123456789"

	// DefaultNumberAmbiguousSet are the numbers which are removed from the
	// chosen character set if removing similar characters
	DefaultNumberAmbiguousSet = "01"

	// DefaultSymbolSet the default symbol set if character set hasn't been
	// selected
	DefaultSymbolSet = "!$%^&*()_+{}:@[];'#<>?,./|\\-=?"

	// DefaultSymbolAmbiguousSet are the symbols which are removed from the
	// chosen character set if removing ambiguous characters
	DefaultSymbolAmbiguousSet = "<>[](){}:;'/|\\,"
)

go-generate-password's People

Contributors

geistindersh avatar m1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.