https://github.com/sayanarijit/gopassgen
[ABANDONED PROJECT] Policy based password generator library for Golang
https://github.com/sayanarijit/gopassgen
go golang password password-generator password-strength passwords random random-generation shuffle
Last synced: 7 months ago
JSON representation
[ABANDONED PROJECT] Policy based password generator library for Golang
- Host: GitHub
- URL: https://github.com/sayanarijit/gopassgen
- Owner: sayanarijit
- License: mit
- Archived: true
- Created: 2018-05-07T16:54:30.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-10-04T15:49:49.000Z (about 6 years ago)
- Last Synced: 2025-02-09T05:24:33.828Z (9 months ago)
- Language: Go
- Homepage:
- Size: 18.6 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gopassgen
[](https://godoc.org/github.com/sayanarijit/gopassgen)
[](https://goreportcard.com/report/github.com/sayanarijit/gopassgen)
[](https://github.com/sayanarijit/gopassgen/blob/master/LICENSE)To use it as a command-line tool or web app, install [gopgcli](https://github.com/sayanarijit/gopgcli) or [gopgweb](https://github.com/sayanarijit/gopgweb)
### Install
```bash
go get github.com/sayanarijit/gopassgen
```### Available policy options
| Policy | Configuration | Type | Default |
| ---------------------------- | ------------- | ------- | ---------------------------- |
| Maximum length | MaxLength | int | 16 |
| Minimum length | MinLength | int | 6 |
| Minimum lower case letters | MinLowers | int | 0 |
| Minimum upper case lette | MinUppers | int | 0 |
| Minimum digits | MinDigits | int | 0 |
| Minimum special characters | MinSpclChars | int | 0 |
| Permitted upper case letters | UpperPool | string | `ABCDEFGHIJKLMNOPQRSTUVWXYZ` |
| Permitted lower case letters | LowerPool | string | `abcdefghijklmnopqrstuvwxyz` |
| Permitted digits | DigitPool | string | `0123456789` |
| Permitted special characters | SpclCharPool | string | `!@#$%^&*()-_=+,.?/:;{}[]~` |### Example Usage
#### Generate a 16 character long password with minimum 2 digits, 2 special characters, 1 capital and 1 small letter
```go
package mainimport (
"fmt"
"github.com/sayanarijit/gopassgen"
)func main() {
p := gopassgen.NewPolicy()
p.MaxLength = 16 // Maximum total length
p.MinLength = 16 // Minimum total length
p.MinDigits = 2 // Minimum digits
p.MinSpclChars = 2 // Minimum special characters
p.MinUppers = 1 // Minimum upper case letters
p.MinLowers = 1 // Minimum lower case letterspassword, _ := gopassgen.Generate(p)
fmt.Println(password)
}
```#### Quickly generate random password of given length using given characters
```go
package mainimport (
"fmt"
"github.com/sayanarijit/gopassgen"
)func main() {
bsPassword := gopassgen.CreateRandom([]byte("ABCDwxyz1234$%^&"), 8) // Returns bytes array
fmt.Println(string(bsPassword))
}
```#### Generate password by shuffling given characters
```go
package mainimport (
"fmt"
"github.com/sayanarijit/gopassgen"
)func main() {
bsPassword := []byte("ABCDwxyz1234$%^&")
gopassgen.Shuffle(bsPassword)
fmt.Println(string(bsPassword))
}
```