NanoID ਜਨਰੇਟਰ

ਔਨਲਾਈਨ NanoID ਮੁੱਲ ਜਨਰੇਟ ਕਰੋ: ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ 21 URL-ਸੁਰੱਖਿਅਤ ਅੱਖਰ, ਲਗਭਗ 126 ਬਿੱਟ ਰੈਂਡਮਨੈੱਸ, ਕਸਟਮ ਲੰਬਾਈ ਅਤੇ ਵਰਣਮਾਲਾ ਦੇ ਨਾਲ।

ਫਾਰਮੈਟ
ਤਿਆਰ ਕੀਤੇ ਗਏ ID
ਤਿਆਰ ਹੈ। ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ NanoID ਮੁੱਲ ਜਨਰੇਟ ਕਰੋ।

ਇਹ ID ਕਿਵੇਂ ਬਣਦੀ ਹੈ

ਲੇਆਉਟ
ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ A-Z, a-z, 0-9, ਅੰਡਰਸਕੋਰ (_) ਅਤੇ ਹਾਈਫ਼ਨ (-) ਤੋਂ 21 URL-ਸੁਰੱਖਿਅਤ ਅੱਖਰ।
ਐਂਟਰੌਪੀ (Entropy)
ਡਿਫੌਲਟ 64-ਅੱਖਰਾਂ ਦੀ ਵਰਣਮਾਲਾ ਅਤੇ 21-ਅੱਖਰਾਂ ਦੀ ਲੰਬਾਈ ਦੇ ਨਾਲ ਲਗਭਗ 126 ਬਿੱਟ।
ਸਮਾਂ
ਕੋਈ ਟਾਈਮਸਟੈਂਪ ਨਹੀਂ; NanoID ਮੁੱਲ ਅਪਾਰਦਰਸ਼ੀ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਕਿਸੇ ਕਸਟਮ ਵਰਣਮਾਲਾ ਵਿੱਚ ਕੋਈ ਅਰਥ ਨਹੀਂ ਜੋੜਦੇ।
ਟਕਰਾਅ ਦਾ ਜੋਖਮ (Collision risk)
ਟਕਰਾਅ ਦਾ ਜੋਖਮ ਲੰਬਾਈ ਅਤੇ ਵਰਣਮਾਲਾ ਦੇ ਨਾਲ ਬਦਲਦਾ ਹੈ। ਡਿਫੌਲਟ ਵਿਕਲਪ UUID v4 ਵਾਂਗ ਹੀ ਵਿਹਾਰਕ ਸੁਰੱਖਿਆ ਸੀਮਾ ਵਿੱਚ ਹੈ।
ਉਦਾਹਰਨ
9WJ0t0bDKKQEiuN24r69z

ਤੁਹਾਡੇ ID ਮਜ਼ਬੂਤ ਬ੍ਰਾਊਜ਼ਰ ਰੈਂਡਮਨੈੱਸ ਨਾਲ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਤਿਆਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। BroBroGo ਨੂੰ ਕੁਝ ਵੀ ਨਹੀਂ ਭੇਜਿਆ ਜਾਂਦਾ।

ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲੇ ਸਵਾਲ

NanoID ਦੀ ਵਰਤੋਂ ਕਿਉਂ ਕਰੀਏ?

NanoID, UUID ਨਾਲੋਂ ਛੋਟਾ ਹੁੰਦਾ ਹੈ, ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ URL-ਸੁਰੱਖਿਅਤ ਹੁੰਦਾ ਹੈ ਅਤੇ ਡਿਫੌਲਟ ਲੰਬਾਈ ਅਤੇ ਵਰਣਮਾਲਾ ਰੱਖਣ 'ਤੇ ਵੀ ਇਸ ਵਿੱਚ ਉੱਚ ਰੈਂਡਮਨੈੱਸ ਹੁੰਦੀ ਹੈ।

ਕੀ ਮੈਂ ਵਰਣਮਾਲਾ (alphabet) ਨੂੰ ਬਦਲ ਸਕਦਾ ਹਾਂ?

ਹਾਂ। ਲੌਕਡ NanoID ਪੇਜ ਲੰਬਾਈ ਅਤੇ ਵਰਣਮਾਲਾ ਦੇ ਨਿਯੰਤਰਣ ਰੱਖਦਾ ਹੈ। ਛੋਟੀਆਂ ਵਰਣਮਾਲਾਵਾਂ ਜਾਂ ਛੋਟੀਆਂ ਲੰਬਾਈਆਂ ਟਕਰਾਅ ਦੇ ਜੋਖਮ ਨੂੰ ਵਧਾਉਂਦੀਆਂ ਹਨ।

Nano ID ਜਨਰੇਟਰ: ਕੀ ਇਸਨੂੰ UUID ਤੋਂ ਵੱਖਰਾ ਬਣਾਉਂਦਾ ਹੈ?

Nano ID ਜਨਰੇਟਰ ਇੱਕ ਅਜਿਹਾ ਸੰਦ ਹੈ ਜੋ Nano ID ਫਾਰਮੈਟ ਵਿੱਚ ਵਿਲੱਖਣ ਪਛਾਣਕਰਤਾ (identifiers) ਪੈਦਾ ਕਰਦਾ ਹੈ, ਜਿੱਥੇ ਤੁਸੀਂ ਲੰਬਾਈ ਅਤੇ ਅਕਸ਼ਰਾਂ ਦੇ ਸੈੱਟ ਨੂੰ ਖੁਦ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹੋ। ਇਸ ਸੰਦ ਦੀ ਸਭ ਤੋਂ ਵੱਡੀ ਵਿਸ਼ੇਸ਼ਤਾ ਇਹ ਹੈ ਕਿ ਇਹ UUID (36 ਅੱਖਰ) ਜਾਂ ULID (26 ਅੱਖਰ) ਨਾਲੋਂ ਛੋਟੇ ਅਤੇ ਜ਼ਿਆਦਾ ਅਨੁਕੂਲਿਤ IDs ਪੈਦਾ ਕਰਦਾ ਹੈ।

ਜਦੋਂ ਕਿ UUIDs ਦੀ ਡਿਫਾਲਟ ਲੰਬਾਈ 36 ਅੱਖਰ ਹੁੰਦੀ ਹੈ, Nano ID ਦੀ ਡਿਫਾਲਟ ਲੰਬਾਈ 21 ਅੱਖਰ ਹੈ। 21 ਅੱਖਰਾਂ 'ਤੇ, Nano ID UUID ਨਾਲੋਂ 42% ਛੋਟਾ ਹੈ, ਪਰ ਫਿਰ ਵੀ ਟੱਕਰ (collision) ਪ੍ਰਤੀਰੋਧਕ ਸਮਰੱਥਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਲੰਬਾਈ ਨੂੰ 2 ਤੋਂ 36 ਅੱਖਰ ਤੱਕ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ, ਅਤੇ ਅਕਸ਼ਰਾਂ ਦੇ ਸੈੱਟ (alphabet) ਨੂੰ ਵੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਆਪਣੀ ਮਰਜ਼ੀ ਨਾਲ ਬਦਲ ਸਕਦੇ ਹੋ।

ਇਹ ਸੰਦ URL-ਸੁਰੱਖਿਅਤ (URL-safe) ਅੱਖਰਾਂ ਨਾਲ IDs ਪੈਦਾ ਕਰਦਾ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇਹਨਾਂ ਵਿੱਚ _, -, ਜਾਂ ਨੰਬਰ 0-9 ਅਤੇ ਅੰਗਰੇਜ਼ੀ ਅੱਖਰ (a-z, A-Z) ਸ਼ਾਮਿਲ ਹੁੰਦੇ ਹਨ। ਜਦੋਂ ਤੁਸੀਂ ਲੰਬਾਈ ਜਾਂ ਅਕਸ਼ਰ ਸੈੱਟ ਬਦਲਦੇ ਹੋ, IDs ਤੁਰੰਤ ਮੁੜ-ਜਨਰੇਟ ਹੋ ਜਾਂਦੀਆਂ ਹਨ।

ਮੁੱਖ ਅੰਤਰ: Nano ID vs UUID

ਵਿਸ਼ੇਸ਼ਤਾ Nano ID UUID
ਡਿਫਾਲਟ ਲੰਬਾਈ 21 ਅੱਖਰ 36 ਅੱਖਰ
ਘੱਟੋ-ਘੱਟ ਲੰਬਾਈ 2 ਅੱਖਰ 36 (ਫਿਕਸ)
ਵੱਧ ਤੋਂ ਵੱਧ ਲੰਬਾਈ 36 ਅੱਖਰ 36 (ਫਿਕਸ)
ਅਕਸ਼ਰ ਸੈੱਟ URL-ਸੁਰੱਖਿਅਤ (ਡਿਫਾਲਟ) 0-9, a-f (hex)
ਅਨੁਕੂਲਤਾ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਨੁਕੂਲਿਤ ਸਿਰਫ UUID ਵਰਜ਼ਨ

Nano ID ਦੇ ਪੈਰਾਮੀਟਰ: ਲੰਬਾਈ, ਅਕਸ਼ਰ ਸੈੱਟ ਅਤੇ ਗਿਣਤੀ

1. ਲੰਬਾਈ (Length)

ਲੰਬਾਈ ਇੱਕ ਸਲਾਈਡਰ ਦੁਆਰਾ ਕੰਟਰੋਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਸਦੀ ਰੇਂਜ 2 ਤੋਂ 36 ਹੈ। ਡਿਫਾਲਟ 21 'ਤੇ ਸੈੱਟ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ ਸਲਾਈਡਰ ਹਿਲਾਉਂਦੇ ਹੋ, IDs ਤੁਰੰਤ ਮੁੜ-ਜਨਰੇਟ ਹੋ ਜਾਂਦੀਆਂ ਹਨ।

ਉਦਾਹਰਨ:

  • ਲੰਬਾਈ 8: a3Bc9XyZ
  • ਲੰਬਾਈ 21: V1wLk9pQrXzUv3Mn5Fg7H
  • ਲੰਬਾਈ 36: aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789

2. ਅਕਸ਼ਰ ਸੈੱਟ (Alphabet)

ਅਕਸ਼ਰ ਸੈੱਟ ਇੱਕ ਸੰਪਾਦਨਯੋਗ (editable) ਟੈਕਸਟ ਫੀਲਡ ਹੈ, ਜਿੱਥੇ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਅੱਖਰ (ਅੰਗਰੇਜ਼ੀ, ਨੰਬਰ, ਜਾਂ ਚਿੰਨ੍ਹ) ਨੂੰ ਸ਼ਾਮਿਲ ਕਰ ਸਕਦੇ ਹੋ। ਡਿਫਾਲਟ URL-ਸੁਰੱਖਿਅਤ ਅੱਖਰ ਹਨ: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-

ਨਿਯਮ:

  • ਅਕਸ਼ਰ ਸੈੱਟ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ 2 ਵੱਖ-ਵੱਖ ਅੱਖਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।
  • ਜੇਕਰ ਸੈੱਟ ਵਿੱਚ ਸਿਰਫ 1 ਅੱਖਰ ਬਚਦਾ ਹੈ, ਤਾਂ ਨਤੀਜੇ ਸਾਫ਼ ਹੋ ਜਾਂਦੇ ਹਨ, ID ਗਿਣਤੀ 0 ਹੋ ਜਾਂਦੀ ਹੈ, ਅਤੇ "Copy all" ਬਟਨ ਅਸਮਰੱਥ (disabled) ਹੋ ਜਾਂਦਾ ਹੈ।

ਉਦਾਹਰਨ:

  • ਸਿਰਫ ਨੰਬਰ: 0123456789
  • ਸਿਰਫ ਵੱਡੇ ਅੱਖਰ: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • ਸਿਰਫ ਛੋਟੇ ਅੱਖਰ: abcdefghijklmnopqrstuvwxyz
  • ਮਿਸ਼ਰਤ: abc123
  • ਗਲਤ: a (ਸਿਰਫ 1 ਅੱਖਰ)

3. ID ਗਿਣਤੀ (Count)

ਤੁਸੀਂ 1 ਤੋਂ 100 ਤੱਕ IDs ਪੈਦਾ ਕਰ ਸਕਦੇ ਹੋ। ਜਦੋਂ ਤੁਸੀਂ "Generate" ਬਟਨ ਦਬਾਉਂਦੇ ਹੋ, IDs ਦੀ ਸੂਚੀ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ, ਅਤੇ "IDs count" ਵਿੱਚ ਗਿਣਤੀ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ।

4. ID ਕਾਪੀ ਕਰਨਾ

  • ਵਿਅਕਤੀਗਤ ID: ਕਿਸੇ ਵੀ ID 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਉਸਨੂੰ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰ ਸਕਦੇ ਹੋ।
  • ਸਾਰੀਆਂ IDs: "Copy all" ਬਟਨ ਦਬਾਉਣ ਨਾਲ ਸਾਰੀਆਂ IDs ਨੂੰ ਇੱਕ ਵਾਰ ਵਿੱਚ ਕਾਪੀ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

ਕਿੰਝ Nano ID ਕੰਮ ਕਰਦਾ ਹੈ: ਬ੍ਰਾਊਜ਼ਰ-ਆਧਾਰਿਤ ਰੈਂਡਮਨੈਸ

Nano ID ਜਨਰੇਟਰ crypto.getRandomValues API ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਮੌਜੂਦ ਇੱਕ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਤੌਰ 'ਤੇ ਸੁਰੱਖਿਅਤ ਰੈਂਡਮ ਨੰਬਰ ਜਨਰੇਟਰ (CSPRNG) ਹੈ। ਇਹ API Web Cryptography API ਦਾ ਹਿੱਸਾ ਹੈ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਸੁਰੱਖਿਆ ਪ੍ਰਣਾਲੀ (security subsystem) ਤੋਂ ਅਸਲ-ਸਮੇਂ (real-time) ਵਿੱਚ ਰੈਂਡਮ ਨੰਬਰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।

ਪ੍ਰਕਿਰਿਆ:

  1. ਅਕਸ਼ਰ ਸੈੱਟ (alphabet) ਨੂੰ ਪਾਰਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਅੱਖਰ ਸੈੱਟ ਤੋਂ ਇੱਕ ਅਰੇ (array) ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ।
  2. ਲੰਬਾਈ (length) ਨੂੰ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ: ਸਲਾਈਡਰ ਤੋਂ ਚੁਣੀ ਗਈ ਲੰਬਾਈ।
  3. ਰੈਂਡਮ ਨੰਬਰ ਪੈਦਾ ਕੀਤੇ ਜਾਂਦੇ ਹਨ: crypto.getRandomValues 32-ਬਿੱਟ unsigned integers ਦੀ ਇੱਕ ਅਰੇ ਪੈਦਾ ਕਰਦਾ ਹੈ।
  4. ID ਬਣਾਈ ਜਾਂਦੀ ਹੈ: ਹਰੇਕ ਰੈਂਡਮ ਨੰਬਰ ਨੂੰ alphabet ਦੇ ਸਾਈਜ਼ (size) ਨਾਲ ਮੌਡ (modulo) ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਨਤੀਜੇ ਵਜੋਂ alphabet ਵਿੱਚੋਂ ਇੱਕ ਅੱਖਰ ਚੁਣਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ID ਦੀ ਲੰਬਾਈ ਜਿੰਨੀ ਵਾਰ ਦੁਹਰਾਇਆ ਜਾਂਦਾ ਹੈ।

ਉਦਾਹਰਨ:

  • Alphabet: abc (3 ਅੱਖਰ)
  • ਰੈਂਡਮ ਨੰਬਰ: 10, 25, 5
  • ID: c (10 % 3 = 1 → 'b'), a (25 % 3 = 1 → 'b'), c (5 % 3 = 2 → 'c') → ID: bbc

ਟੱਕਰ (Collision) ਦੀ ਸੰਭਾਵਨਾ: ਲੰਬਾਈ ਅਤੇ ਅਕਸ਼ਰ ਸੈੱਟ ਦਾ ਗਣਿਤ

Nano ID ਦੀ ਟੱਕਰ ਪ੍ਰਤੀਰੋਧਕ ਸਮਰੱਥਾ ਦਾ ਅੰਦਾਜ਼ਾ Entropy (ਅੰਦੁਆ) ਦੁਆਰਾ ਲਗਾਇਆ ਜਾਂਦਾ ਹੈ। Entropy = length × log2(alphabet_size)

ਉਦਾਹਰਨ:

  • UUID: 36 ਅੱਖਰ × log2(16) ≈ 36 × 4 = 144 bits
  • Nano ID (21 ਅੱਖਰ, 64 ਅੱਖਰਾਂ ਦਾ alphabet): 21 × log2(64) ≈ 21 × 6 = 126 bits
  • Nano ID (12 ਅੱਖਰ, 64 ਅੱਖਰਾਂ ਦਾ alphabet): 12 × 6 = 72 bits
  • Nano ID (36 ਅੱਖਰ, 64 ਅੱਖਰਾਂ ਦਾ alphabet): 36 × 6 = 216 bits

ਟੱਕਰ ਦੀ ਸੰਭਾਵਨਾ (birthday problem):

  • 126 bits 'ਤੇ (21 ਅੱਖਰ, 64 alphabet): 1 billion IDs ਪੈਦਾ ਕਰਨ 'ਤੇ ਟੱਕਰ ਦੀ ਸੰਭਾਵਨਾ 2^-119 ≈ 10^-36 ਤੋਂ ਵੀ ਘੱਟ ਹੈ।
  • 72 bits 'ਤੇ (12 ਅੱਖਰ): 1 million IDs 'ਤੇ ਟੱਕਰ ਦੀ ਸੰਭਾਵਨਾ ≈ 0.001% (10^-5)

ਪ੍ਰੈਕਟੀਕਲ ਸਿਫਾਰਿਸ਼:

  • 21 ਅੱਖਰ (ਡਿਫਾਲਟ): ਜ਼ਿਆਦਾਤਰ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਕਾਫੀ।
  • 12 ਅੱਖਰ: ਛੋਟੇ IDs ਲਈ (ਜਿਵੇਂ URL shorteners), ਪਰ ਟੱਕਰ ਦੀ ਸੰਭਾਵਨਾ ਵਧ ਜਾਂਦੀ ਹੈ।
  • 36 ਅੱਖਰ: UUID ਨੂੰ ਬਦਲਣ ਲਈ, 216 bits entropy।

ਪ੍ਰਾਈਵੇਸੀ ਅਤੇ ਸੁਰੱਖਿਆ: ਕੁਝ ਵੀ BroBroGo ਨੂੰ ਨਹੀਂ ਭੇਜਿਆ ਜਾਂਦਾ

Nano ID ਜਨਰੇਟਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕਲਾਇੰਟ-ਸਾਈਡ (client-side) 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ:

  • IDs ਸਿਰਫ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਪੈਦਾ ਹੁੰਦੀਆਂ ਹਨ।
  • ਕੋਈ ਵੀ ID, alphabet, ਲੰਬਾਈ, ਜਾਂ ਗਿਣਤੀ BroBroGo ਸਰਵਰ ਨੂੰ ਨਹੀਂ ਭੇਜੀ ਜਾਂਦੀ।
  • ਸਰਵਰ 'ਤੇ ਕੋਈ ਲੌਗ (log) ਜਾਂ ਵਿਸ਼ਲੇਸ਼ਣ (analytics) ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ।

ਇਹ ਮਹੱਤਵਪੂਰਨ ਕਿਉਂ ਹੈ:

  • ਜੇਕਰ ਤੁਸੀਂ ਗੁਪਤ (secret) IDs (ਜਿਵੇਂ API tokens) ਪੈਦਾ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਕਲਾਇੰਟ-ਸਾਈਡ ਜਨਰੇਸ਼ਨ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ IDs ਸਰਵਰ 'ਤੇ ਕਿਤੇ ਵੀ ਸਟੋਰ ਨਹੀਂ ਹੁੰਦੀਆਂ।
  • ਸੁਰੱਖਿਆ: BroBroGo ਕਿਸੇ ਵੀ ID, alphabet, ਜਾਂ ਲੰਬਾਈ ਨੂੰ ਸਟੋਰ ਨਹੀਂ ਕਰਦਾ।
  • ਪਾਰਦਰਸ਼ਿਤਾ: IDs crypto.getRandomValues ਤੋਂ ਆਉਂਦੀਆਂ ਹਨ, ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਸੁਰੱਖਿਅਤ ਰੈਂਡਮ ਸਰੋਤ ਹੈ।

FAQs (ਆਮ ਸਵਾਲ)

1. Nano ID vs UUID: ਕਿਹੜਾ ਵਧੀਆ ਹੈ?

Nano ID (21 ਅੱਖਰ) UUID (36 ਅੱਖਰ) ਨਾਲੋਂ 42% ਛੋਟਾ ਹੈ, ਪਰ 126 bits entropy vs UUID ਦੇ 144 bits entropy। ਜੇਕਰ ਤੁਹਾਨੂੰ 1 billion IDs ਤੋਂ ਘੱਟ ਚਾਹੀਦੀਆਂ ਹਨ, Nano ID 21 ਅੱਖਰਾਂ 'ਤੇ ਕਾਫੀ ਹੈ। UUID ਸਿਰਫ 16-ਹੈਕਸ (0-9, a-f) alphabet ਤੱਕ ਸੀਮਤ ਹੈ।

2. ਮੈਂ alphabet ਵਿੱਚ ਕਿਹੜੇ ਅੱਖਰ ਪਾ ਸਕਦਾ/ਸਕਦੀ ਹਾਂ?

ਕੋਈ ਵੀ ASCII ਅੱਖਰ (0-9, a-z, A-Z, pun:ctuation !@#$%^&*()_+-=[]{}|;':",./<>?~), ਪਰ ਘੱਟੋ-ਘੱਟ 2 ਵੱਖ-ਵੱਖ ਅੱਖਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ। Non-ASCII (ਯੂਨੀਕੋਡ) ਅੱਖਰ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ।

3. ਮੈਨੂੰ ਕਿਹੜੀ ਲੰਬਾਈ ਚੁਣਨੀ ਚਾਹੀਦੀ ਹੈ?

  • 8 ਅੱਖਰ: ਛੋਟੇ URL shorterners, QR codes (48 bits entropy)
  • 12 ਅੱਖਰ: medium-sized systems (72 bits entropy)
  • 21 ਅੱਖਰ: ਡਿਫਾਲਟ, ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਲਈ (126 bits entropy)
  • 36 ਅੱਖਰ: UUID replacement (216 bits entropy)

4. ਕੀ IDs ਯੂਨੀਕ (unique) ਹਨ?

IDs probabilistically unique ਹਨ, absolute unique ਨਹੀਂ। 21 ਅੱਖਰਾਂ 'ਤੇ, 1 billion IDs 'ਤੇ collision probability ≈ 2^-119 (ਅਸਲ ਵਿੱਚ 0)।

5. ਕੀ IDs crypto.getRandomValues 'ਤੇ ਨਿਰਭਰ ਹਨ?

ਹਾਂ, IDs crypto.getRandomValues (Web Cryptography API) 'ਤੇ ਆਧਾਰਿਤ ਹਨ, ਜੋ browser-native CSPRNG ਹੈ। ਇਹ Math.random() (pseudo-random) ਨਾਲੋਂ ਬੇਹੱਦ ਸੁਰੱਖਿਅਤ ਹੈ।

6. "Alphabet needs at least 2 different characters." ਗਲਤੀ ਕਦੋਂ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ?

ਜਦੋਂ alphabet ਵਿੱਚ ਸਿਰਫ 1 ਅੱਖਰ (ਜਿਵੇਂ a ਜਾਂ 0) ਬਚਦਾ ਹੈ, IDs 0 ਹੋ ਜਾਂਦੀਆਂ ਹਨ, "Copy all" disabled ਹੋ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਇਹ error message ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।