Comments (1)
However, the restriction that disallows repeated characters and the requirement for a fixed number of digits and special characters may inadvertently reduce the entropy of the generated passwords.
This isn't a "restriction", it's a user-specified configuration based on the use case. If your use case requires extremely high entropy or a larger character set (technically emojis and any unicode character could be valid), then you can customize this configurable.
I'm not really sure what change you're suggesting here. Users can allow characters to repeat. I'm not taking away that configuration option.
Finally, if you really want the highest entropy with no constraints, just read cryto.Rand
into a []byte
that's allocated with your preset length and encode the result as hex or base64:
buf := make([]byte, length)
n, err := rand.Read(buf) // crypto/rand
if err != nil {
panic(err)
}
if n < length {
panic(fmt.Sprintf("insufficient bytes read: %v, expected %v", n, length))
}
return buf, nil
This library (and it's sister library go-diceware) are intentionally low-level and configurable libraries.
from go-password.
Related Issues (11)
- Generate Password contain double quotes (") and backslash (\) HOT 3
- Randomly has (MISSING) inserted into the password. HOT 2
- The meaning of allowRepeat is not straightforward HOT 2
- New tag version to reference from go.mod HOT 2
- v0.2.0 does not appear in Releases HOT 2
- Currently possible to generate a password without either uppercase or lowercase characters HOT 5
- README: add quick demo HOT 2
- Ability to override symbols seed HOT 2
- randomInsert not fully random
- Wrong password HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-password.