CUID
Collision-Resistant Unique Identifier
A unique ID format designed for horizontal scaling, combining a timestamp, counter, fingerprint, and random component.
기술 세부사항
CUID relies on pseudo-random number generators (PRNGs). JavaScript's Math.random() uses an implementation-specific PRNG (typically xoshiro256**) that is fast but not cryptographically secure. For security-sensitive generation (tokens, passwords, keys), the Web Crypto API's crypto.getRandomValues() draws from the OS entropy pool (/dev/urandom on Linux, CryptGenRandom on Windows). True randomness requires hardware sources (thermal noise, radioactive decay) and is unnecessary for most generation tasks.
예시
```javascript
// CUID: generation example
function generate(options = {}) {
const { length = 10, type = 'alphanumeric' } = options;
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const values = crypto.getRandomValues(new Uint32Array(length));
return Array.from(values, v => chars[v % chars.length]).join('');
}
```