Search
Duplicate
🚓

nanoid

UUID와 비교했을 때

: UUID v4와 uuid 생성 방식
1.
uuid/v4 라이브러리에 비해 4배 가볍습니다.
2.
더 많은 문자를 사용하여 문자의 수를 21자로 줄였습니다.

보안

: 안전하지 않은 함수인 Math.random() 대신 crypto 모듈과 Web Crypto API를 사용하여 예측불가능한 값을 제공합니다.
: 일반적으로 널리 알려져있는 ID 생성기 방법인 random % alphabet 방식 대신 더 좋은 알고리즘 방식을 사용하여 더 균일된 문자열을 제공합니다.

성능

crypto.randomUUID 21,119,429 ops/sec uuid v4 20,368,447 ops/sec @napi-rs/uuid 11,493,890 ops/sec uid/secure 8,409,962 ops/sec @lukeed/uuid 6,871,405 ops/sec nanoid 5,652,148 ops/sec customAlphabet 3,565,656 ops/sec secure-random-string 394,201 ops/sec uid-safe.sync 393,176 ops/sec shortid 49,916 ops/sec Async: nanoid/async 135,260 ops/sec async customAlphabet 136,059 ops/sec async secure-random-string 135,213 ops/sec uid-safe 119,587 ops/sec Non-secure: uid 58,860,241 ops/sec nanoid/non-secure 2,744,615 ops/sec rndm 2,718,063 ops/sec
Java
복사
: 기준 uuid v4 대비 4배 빠릅니다.
: 그 외 다양한 라이브러리들의 성능도 제공합니다.

버전

: 현재 ECM와 CJS 두 개를 병렬 버전으로 지원, CJS : 3, ECM : 4 설치 시 주의해야함
라이브러리 동일 함수
export let nanoid=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+=(e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e>62?"-":"_"),"");
TypeScript
복사

참고