גנרטור 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 עד 100. ברירת המחדל היא 21.
- ערכת תווים: קבוצת התווים שממנה נבנה המזהה. ברירת המחדל היא תווים אלפאנומריים.
מזינים אורך, בוחרים ערכת תווים ולוחצים על "Generate" כדי ליצור מזהה. לוחצים על "Copy" כדי להעתיק אותו, או על "Reset" כדי לחזור לאורך 21 ולערכת התווים האלפאנומריים. מזהה חדש מופיע גם באופן אוטומטי בכל פעם שהאורך או ערכת התווים משתנים. מתחת ללחצנים הכלי מציג כל תו במזהה כבלוק צבעוני: כחול לאות גדולה, ירוק לאות קטנה, כתום לספרה ואפור לסימן פיסוק.
אם האורך אינו מספר שלם בין 1 ל־100, הכלי מציג את ההודעה "האורך חייב להיות מספר שלם בין 1 ל־100" ואינו יוצר מזהה.
ערכות תווים זמינות
הכלי מציע שבע ערכות תווים קבועות. הוא אינו מקבל אלפבית מותאם אישית שהוקלד על ידי המשתמש. הערכה "With Symbols" מוסיפה לתווים האלפאנומריים את 26 סימני הפיסוק האלה: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.
| קבוצת תווים | תווים בשימוש | גודל האלפבית |
|---|---|---|
| אלפאנומריים (ברירת מחדל) | A-Z, a-z, 0–9 | 62 |
| בטוחים לשימוש ב־URL | A-Z, a-z, 0-9, -, _ | 64 |
| מספריים | 0–9 | 10 |
| אלפביתיים | A-Z, a-z | 52 |
| אותיות קטנות | a-z | 26 |
| אותיות גדולות | A-Z | 26 |
| עם סימנים | 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 ID | 21 תווים, ניתן לשינוי | אקראי, קומפקטי, אינו ניתן למיון לפי זמן |
| UUID | 36 תווים | פורמט תקני, נתמך באופן נרחב, כולל מקפים |
| ULID | 26 תווים | ניתן למיון לפי זמן היצירה |
| KSUID | 27 תווים | ניתן למיון לפי זמן היצירה, כולל חותמת זמן |
| מספר שלם בעל הגדלה אוטומטית | משתנה | פשוט ועוקב, אך ניתן לחיזוי וקשה לתאם אותו בין מסדי נתונים נפרדים |
שאלות נפוצות
מהו האורך וערכת התווים של 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.
מקורות
- סיטניק, אנדריי. "Nano ID." GitHub, https://github.com/ai/nanoid.
- "Universally unique identifier." ויקיפדיה, קרן ויקימדיה, https://en.wikipedia.org/wiki/Universally_unique_identifier.
- "ULID Spec." GitHub, https://github.com/ulid/spec.