Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/delphinus/random-string
Library to make passwords without misleading letters
https://github.com/delphinus/random-string
go golang password-generator random-string
Last synced: 7 days ago
JSON representation
Library to make passwords without misleading letters
- Host: GitHub
- URL: https://github.com/delphinus/random-string
- Owner: delphinus
- License: mit
- Created: 2017-05-08T02:10:03.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-05-21T05:59:39.000Z (over 7 years ago)
- Last Synced: 2024-04-16T22:29:56.054Z (7 months ago)
- Topics: go, golang, password-generator, random-string
- Language: Go
- Homepage:
- Size: 6.84 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RandomString -- Library to make passwords without misleading letters
[![CircleCI](https://circleci.com/gh/delphinus/random-string.svg?style=svg)](https://circleci.com/gh/delphinus/random-string)
[![Coverage Status](https://coveralls.io/repos/github/delphinus/random-string/badge.svg)](https://coveralls.io/github/delphinus/random-string)This package makes random passwords with fast logic described in [this link][].
[this link]: http://stackoverflow.com/questions/22892120/how-to-generate-a-random-string-of-a-fixed-length-in-golang
The original logic is NOT goroutine safe because it shares `rand.Source` and the `Int63()` calls conflict. The logic in this package is using `sync.Mutex` to solve this.
```go
package mainimport (
"fmt""github.com/delphinus/random-string"
)func main() {
pass := randomString.Generate(8);
fmt.Printf("simple password: %s\n", pass)
// simple password: JEVGqkiW
}
```## Benchmark
```go
go version
go version go1.8.1 darwin/amd64
go test -bench . -benchmem
BenchmarkRandomString/Runes-8 50000 35584 ns/op 1312 B/op 2 allocs/op
BenchmarkRandomString/Bytes-8 50000 35547 ns/op 512 B/op 2 allocs/op
BenchmarkRandomString/Remainder-8 50000 34095 ns/op 512 B/op 2 allocs/op
BenchmarkRandomString/Mask-8 50000 35362 ns/op 512 B/op 2 allocs/op
BenchmarkRandomString/MaskImproved-8 300000 4710 ns/op 512 B/op 2 allocs/op
BenchmarkRandomString/MaskSource-8 500000 3873 ns/op 512 B/op 2 allocs/op
PASS
ok github.com/delphinus/random-string 11.885s
```