Comments (6)
It is just algorithm limits. Symbols on 256, 257, …
positions will be ignored.
I change text a little 9796c48
Maybe you can do it better.
from nanoid.
If you didn’t want to explain it better, I will release 1.0.
from nanoid.
You'll want to address the language here:
Line 4 in 039fe3f
Which states "Alphabet must contain 256 symbols or less. Otherwise, the generator will not be secure.". It's both wrong because it should be "less than 256 symbols", and also the part about it "not being secure" is confusing.
And possibly add a length check in the function to throw an appropriate error for alphabets greater than 255 characters.
from nanoid.
It's both wrong because it should be "less than 256 symbols"
Nope, random byte has values between 0...255
(from 0), so 256 symbols (we start to count from 1) could be matched in this interval.
not being secure
I am open for suggestion :). It is less secure because we use random bytes per symbol, so any >255
symbols will be ignored in ID.
And possibly add a length check in the function to throw an appropriate error for alphabets greater than 255 characters.
Do you know real cases for this? ;)
from nanoid.
I was just going off the language you used in the commit you were referencing (9796c48), which stated "Only alphabets with less than 256 symbols are supported." Either format.js is wrong or the README is wrong as they conflict. :)
from nanoid.
Ouh, understand :).
I copied text from generate.js
to README.md
. Is it OK right now?
from nanoid.
Related Issues (20)
- How to use customAlphabet() with version 3?
- https://stackoverflow.com/questions/27536941/sdl-mouse-input. HOT 1
- const { nanoid } = require('nanoid'); nanoid(7); //=> "GQuja9F"
- Maybe throw an error if letters is empty? HOT 3
- TypeError: nanoid is not a function when using react native web and styled components HOT 11
- Best way to generate initial ids?
- Issue along with pkg 5.8.1 "Failed to make bytecode" HOT 1
- Why did you remove CJS support? HOT 1
- Challenges using nanoid under jest with jsdom environment? HOT 5
- Unverified input breaks nanoid HOT 1
- Can't use nanoid@4 with typescript HOT 1
- More intuitive calculator? HOT 1
- Docs: Unnecessary use of --save flag HOT 1
- ulid format preset HOT 1
- Doesn't work with AWS Lambdas
- Question: about the usage of a bitmask
- Error while importing in node js
- Issue while running in Firebase Emulator (Cloud Functions) HOT 1
- Errors with nanoid v3 when using jest and jsdom HOT 9
- Error on nanoid HOT 1
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 nanoid.