דלג לתוכן

גנרטור Nano ID בחינם - מזהים ייחודיים בטוחים וידידותיים לכתובת URL באינטרנט

צור מזהי Nano ID בטוחים מיידית! כלי מקוון חינמי יוצר מזהים ייחודיים קומפקטיים, ידידותיים לכתובת URL, הקצרים ב-42% מ-UUID. מושלם למסדי נתונים, API, טוקנים ומערכות.

האורך של Nano ID שנוצר (1-100 תווים)

בחר את ערכת התווים עבור Nano ID שלך

Nano ID שנוצר

הזן ערך כדי לראות תוצאות

תצוגה

מחשבון טעינה...
📚

תיעוד

מחולל Nano ID יוצר מחרוזת קצרה ואקראית של תווים, הנקראת Nano ID. מזהי Nano ID משמשים כמזהים ייחודיים לדברים כגון רשומות במסדי נתונים, כתובות URL ואסימוני API, ושני מזהים שנוצרו כמעט לעולם לא יהיו זהים.

מהו Nano ID?

Nano ID הוא מחרוזת שנוצרת באופן אקראי ומשמשת לסימון דבר מה, כדי שניתן יהיה להבדיל בינו לבין כל דבר אחר. מפתח התוכנה אנדריי סיטניק יצר את הפורמט בשנת 2017 כחלופה קטנה יותר ל־UUID (מזהה ייחודי אוניברסלי), מזהה באורך 36 תווים, הנמצא בשימוש נרחב במחשוב. ברירת המחדל של Nano ID היא 21 תווים, לעומת 36 ב־UUID — קיצור של כ־42%.

כיצד ליצור Nano ID באמצעות כלי זה

המחולל בדף זה בונה Nano ID משתי הגדרות.

  1. אורך: מספר שלם מ־1 עד 100. ברירת המחדל היא 21.
  2. ערכת תווים: קבוצת התווים שממנה נבנה המזהה. ברירת המחדל היא תווים אלפאנומריים.

מזינים אורך, בוחרים ערכת תווים ולוחצים על "Generate" כדי ליצור מזהה. לוחצים על "Copy" כדי להעתיק אותו, או על "Reset" כדי לחזור לאורך 21 ולערכת התווים האלפאנומריים. מזהה חדש מופיע גם באופן אוטומטי בכל פעם שהאורך או ערכת התווים משתנים. מתחת ללחצנים הכלי מציג כל תו במזהה כבלוק צבעוני: כחול לאות גדולה, ירוק לאות קטנה, כתום לספרה ואפור לסימן פיסוק.

אם האורך אינו מספר שלם בין 1 ל־100, הכלי מציג את ההודעה "האורך חייב להיות מספר שלם בין 1 ל־100" ואינו יוצר מזהה.

ערכות תווים זמינות

הכלי מציע שבע ערכות תווים קבועות. הוא אינו מקבל אלפבית מותאם אישית שהוקלד על ידי המשתמש. הערכה "With Symbols" מוסיפה לתווים האלפאנומריים את 26 סימני הפיסוק האלה: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.

קבוצת תוויםתווים בשימושגודל האלפבית
אלפאנומריים (ברירת מחדל)A-Z, a-z, 0–962
בטוחים לשימוש ב־URLA-Z, a-z, 0-9, -, _64
מספריים0–910
אלפביתייםA-Z, a-z52
אותיות קטנותa-z26
אותיות גדולותA-Z26
עם סימניםA-Z, a-z, 0–9 ו־26 סימני פיסוק88

ערכת התווים האלפאנומריים נבחרת כברירת מחדל. היא אינה כוללת את המקף ואת הקו התחתון שבערכת התווים הבטוחים ל־URL, אף שאותיות וספרות בלבד כבר בטוחות להצבה ישירות בכתובת URL.

הנוסחה של Nano ID

Nano ID נבנה באמצעות בחירה אקראית, תו אחר תו, של מספר קבוע של תווים מתוך אלפבית, תוך שימוש במחולל מספרים אקראיים מאובטח מבחינה קריפטוגרפית. זהו מחולל שתוכנן כך שלא ניתן יהיה לחזות מראש את הפלט שלו.

1id = random(alphabet, size)
2

בהגדרות ברירת המחדל, ל־alphabet יש 62 תווים, ו־size הוא 21.

דוגמה פתורה

באמצעות האלפבית האלפאנומרי המוגדר כברירת מחדל ובאורך של 21 תווים, מזהה אפשרי אחד שנוצר הוא:

1K7pQ2mZxT9vY4nR8jH3wL
2

כל תו נבחר באופן בלתי תלוי מתוך 62 האותיות והספרות, ולכן הפעלת המחולל פעמיים כמעט לעולם לא תפיק את אותה מחרוזת.

כיצד לחשב את ההסתברות להתנגשות

מכיוון ש־Nano ID נבחר באופן אקראי, ייתכן, אף כי הסבירות לכך נמוכה מאוד, ששני מזהים שנוצרו יהיו זהים. מצב זה נקרא התנגשות. ההסתברות להתנגשות אחת לפחות לאחר יצירת k מזהים מחושבת באותה דרך מתמטית כמו "פרדוקס יום ההולדת":

1P(collision) ≈ 1 - e^(-k² / (2n))
2

כאן n הוא מספר המזהים האפשריים: גודל האלפבית בחזקת אורך המזהה, או n = alphabet_size^length.

דוגמה פתורה

בהגדרת ברירת המחדל, עם אלפבית באורך 62 תווים ואורך מזהה של 21 תווים:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

פתרון הנוסחה עבור הסתברות התנגשות של 1% נותן:

1k ≈ 9.4 × 10^17 IDs
2

משמעות הדבר היא שיש ליצור בערך 940 קוודריליון מזהים לפני שתהיה אפילו הסתברות של 1% ששניים מהם יהיו זהים. בקצב של מיליון מזהים שנוצרים בכל שנייה, יידרשו כ־29,700 שנים כדי להגיע למספר זה.

מעבר לאלפבית הבטוח ל־URL באורך 64 תווים מגדיל מעט את המספר, לכ־1.3 × 10^18 מזהים עבור אותו סיכון של 1%, משום שהאלפבית הגדול יותר משאיר יותר מזהים אפשריים לבחירה.

Nano ID בהשוואה למזהים אחרים

סוגאורךהערות
Nano ID21 תווים, ניתן לשינויאקראי, קומפקטי, אינו ניתן למיון לפי זמן
UUID36 תוויםפורמט תקני, נתמך באופן נרחב, כולל מקפים
ULID26 תוויםניתן למיון לפי זמן היצירה
KSUID27 תוויםניתן למיון לפי זמן היצירה, כולל חותמת זמן
מספר שלם בעל הגדלה אוטומטיתמשתנהפשוט ועוקב, אך ניתן לחיזוי וקשה לתאם אותו בין מסדי נתונים נפרדים

שאלות נפוצות

מהו האורך וערכת התווים של Nano ID כברירת מחדל?

ברירת המחדל היא 21 תווים מתוך ערכת התווים האלפאנומריים: A-Z, a-z, 0-9, הכוללת 62 תווים בסך הכול.

האם הכלי תומך באלפבית מותאם אישית?

לא. הוא מציע שבע ערכות תווים קבועות: אלפאנומריים, בטוחים ל־URL, מספריים, אלפביתיים, אותיות קטנות, אותיות גדולות ו־"With Symbols".

במה Nano ID שונה מ־UUID?

Nano ID קצר יותר. ברירת המחדל היא 21 תווים, לעומת 36 תווים ב־UUID, כלומר קצר בכ־42%. שניהם נוצרים באופן אקראי ואינם עוקבים.

האם ניתן למיין Nano ID לפי זמן יצירתו?

לא. מזהי Nano ID אקראיים לחלוטין, ולכן אינם מכילים מידע על מועד יצירתם. פורמטים כגון ULID או KSUID נבנו כדי שניתן יהיה למיין אותם לפי זמן.

האם בטוח להשתמש ב־Nano ID כמפתח ראשי במסד נתונים?

כן. יש לאחסן אותו בעמודת טקסט או מחרוזת ולא כמספר, וליצור אינדקס ייחודי לחיפושים מהירים.

כמה מזהי Nano ID אפשריים קיימים?

הדבר תלוי באורך ובערכת התווים שנבחרו. עם אלפבית ברירת המחדל באורך 62 תווים ואורך של 21 תווים, קיימים 62^21 מזהים אפשריים, שהם בערך 4.4 × 10^37.

מקורות

  1. סיטניק, אנדריי. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." ויקיפדיה, קרן ויקימדיה, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.