מחולל UUID

כלים אחרים

סובב את הגלגל{$ ',' | translate $} קוצב זמן{$ ',' | translate $} ממיר יחידה{$ ',' | translate $} להטיל מטבע{$ ',' | translate $} מחולל מספרים אקראיים{$ ',' | translate $} הטלת קוביה{$ ',' | translate $} מחשבון BMI{$ ',' | translate $} מחשבון קלוריות{$ ',' | translate $} קצב חילוף חומרים בסיסי{$ ',' | translate $} מחשבון שומן בגוף{$ ',' | translate $} מחשבון TDEE{$ ',' | translate $} טיימר טבטה{$ ',' | translate $} מחשבון אחוזים{$ ',' | translate $} יוצר קוד QR{$ ',' | translate $} מחולל סיסמאות{$ ',' | translate $} בדיקת זמן תגובה{$ ',' | translate $} מבחן מהירות הקלדה{$ ',' | translate $} בדיקת CPS{$ ',' | translate $} סופר מילים{$ ',' | translate $} ממיר אותיות רישיות{$ ',' | translate $} השוואת טקסט{$ ',' | translate $} מחשבון משכנתא{$ ',' | translate $} מחשבון הלוואות{$ ',' | translate $} מחשבון הלוואה לרכב{$ ',' | translate $} מחשבון מע"מ{$ ',' | translate $} מחשבון ריבית דריבית{$ ',' | translate $} מחשבון שכר{$ ',' | translate $} פסנתר וירטואלי{$ ',' | translate $} מחולל רעשי רקע{$ ',' | translate $} מטרונום{$ ',' | translate $} מחשבון הנחה{$ ',' | translate $} מספר השבוע הנוכחי{$ ',' | translate $} מחשבון טיפ{$ ',' | translate $} מחשבון זמן{$ ',' | translate $} מחשבון תאריכים{$ ',' | translate $} מחשבון גיל{$ ',' | translate $} ממיר מטבע{$ ',' | translate $} מחשבון שינה{$ ',' | translate $} מחזורי הירח{$ ',' | translate $} מחולל פלטות צבעים{$ ',' | translate $} בוחר הצבעים{$ ',' | translate $} יוצר סכמת צבעים{$ ',' | translate $} מחשבון מידות טבעות{$ ',' | translate $} מחשבון מידות בגדים{$ ',' | translate $} מחשבון מידות נעליים{$ ',' | translate $} מחשבון מידת חזייה{$ ',' | translate $} מחשבון ביוץ{$ ',' | translate $} מחשבון הריון{$ ',' | translate $} מזלות{$ ',' | translate $} מבחן איקיו{$ ',' | translate $} אמוג׳י{$ ',' | translate $} שעון עצר{$ ',' | translate $} ספירה לאחור{$ ',' | translate $} שעון מעורר{$ ',' | translate $} מחשבון רשת משנה{$ ',' | translate $} בדיקת מהירות אינטרנט{$ ',' | translate $} כתובת IP{$ ',' | translate $} ממיר Base64{$ ',' | translate $} מחולל MD5{$ ',' | translate $} עורך Markdown{$ ',' | translate $} מחולל Lorem Ipsum{$ ',' | translate $} טיימר פומודורו

הפק UUID/GUID

הפק UUID/GUID

הזיהוי האוניברסלי הייחודי (UUID), הידוע גם בשם המזהה הייחודי הגלובלי (GUID), נמצא בשימוש נרחב במערכות מחשב.

זהו קוד של 128 סיביות שנוצר על ידי המערכת על סמך משתנים וקבועים: זמן נוכחי, כתובת MAC, Hash SHA-1, מרחב שמות MD5. התוצאה הסופית של יצירת UUID, המוצגת כקוד אלפאנומרי בן 32 תווים מופרד במקפים, עשויה להיראות שרירותית, אך למעשה היא תוצאה של חישובים מורכבים. לפיכך, מחשב אינו "ממציא" קוד, אלא יוצר אותו מכמויות טכניות ספציפיות שרלוונטיות בזמן נתון.

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

היסטוריית UUID

קודי UUID של 128 סיביות שימשו לראשונה על ידי החברה האמריקאית Apollo Computer בשנות ה-80. הם התבססו על קודי 64 סיביות פשוטים יותר בשימוש ב-Domain/OS ומצאו שימוש נרחב בסביבת המחשוב של Open Software Foundation.

עם הופעתן של פלטפורמות Windows הראשונות, המזהה הייחודי הגלובלי הוכלל והותקן. מיקרוסופט אימצה את עיצוב ה-DCE מ-Apollo Computer ורשמה את מרחב השמות של URN ב-RFC 4122. ב-2005, האחרון הוצע כתקן חדש על ידי ה-IETF, ו-UUID תוקן בתוך ITU.

מוקדם יותר בשנת 2002, זוהו בעיות בביצועי המערכת בעת שימוש ב-UUID כמפתחות ראשיים במסדי נתונים מקומיים. אלה תוקנו בגרסה 4 על ידי הוספת סיומת לא אקראית המבוססת על זמן המערכת של המחשב. גישת ה-COMB (Combined GUID Time Identifier) ​​הגדילה את הסיכונים לשכפול קוד, אך במקביל שיפרה משמעותית את הביצועים בעבודה עם Microsoft SQL Server.

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

הטבות של UUID

מחוללים של קודים ייחודיים גלובליים אינם דורשים התאמה/סנכרון נתונים מרכזיים והם זמינים באופן חופשי לכל המשתמשים. היתרונות העיקריים של UUID כוללים:

  • סיכונים מינימליים של "התנגשות" (חזרה) של קודים. למרות השימוש המאסיבי שלהם, ההסתברות לחזרה שואפת לאפס.
  • יכולת להצטרף למערכים שונים של נתונים באמצעות UUIDs כמפתחות ראשיים (ייחודיים).
  • הפצה פשוטה של ​​נתונים על פני מספר שרתים מפוזרים.
  • יכולת ליצור קודים במצב לא מקוון.

קודי זיהוי ייחודיים, הכתובים בפורמט xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, מאפשרים למערכות מפוזרות לזהות מידע ללא תיאום ממרכז נתונים אחד: עם הסתברות כמעט אפסית לשגיאות/חזרות. תכונה זו, יחד עם קלות השימוש ודרישות קטנות לביצועי מחשב, הופכות את UUID למבוקש וחיוני במגוון רחב של תעשיות IT ומערכות מחשוב אוטונומיות.

מזהה ייחודי גלובלי

מזהה ייחודי גלובלי

ה-UUID יכול ליצור קודים באמצעות אלגוריתמים ומשתנים שונים/ערכים קבועים.

ישנן 5 גרסאות של המזהה בסך הכל, תוך שימוש בתאריך/שעה של המערכת ובכתובות MAC, פרוטוקולי אבטחה DCE, Hash MD5, Hash SHA-1 ומרחב השמות בעת יצירת.

בכל המקרים, התוצאה הסופית מוצגת בתבנית xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (מספר בסימון הקסדצימלי, המורכב מאותיות לטיניות קטנות ומספרים, ומחולק במקפים לחמישה בלוקים: 8-4 -4-4- 12), M מייצג גרסה, N מייצג גרסה UUID.

לכן, המערכת משתמשת ב-36 תווים בכל פעם (26 אותיות ו-10 ספרות), כך שההסתברות לחזור על קודים בני 32 ספרות שואפת לאפס, למרות העובדה שהם נוצרים מדי יום על ידי מיליוני משתמשים ברחבי העולם.

גרסאות UUID

גרסה 1

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

  • 32 סיביות המידע התחתונות נלקחות מתג UTC. הם מומרים ל-8 תווים הקסדצימליים ותופסים 4 בתים.
  • ממוצע של 16 ביטים של מידע נלקחים מאותה תווית UTC ומומרים ל-4 תווים הקסדצימליים התופסים 2 בתים.
  • 12 סיביות המידע העליונות מתג UTC נלקחות ומומרות ל-4 תווים הקסדצימליים נוספים.
  • עוד 1-3 ביטים נופלים על רצף השעון ומפחיתים את הסיכונים להתנגשויות על ידי הכנסת מידה של אקראיות/אי ודאות. זמן המערכת מואט באופן מותנה או מוחזר - כך ששני מזהים או יותר הפועלים באותו מחשב באותו זמן לא "יצלבו".
  • 6 הבתים הנותרים הם ערך קבוע שנוצר על סמך כתובת ה-MAC של המכשיר. הוא מורכב מ-12 תווים הקסדצימליים וגודלו 48 סיביות.

מכיוון שהאלגוריתם של הגרסה הראשונה של UUID קשור באופן בלתי נפרד לזמן המערכת, השימוש ברצף השעון הוא חובה. אחרת, הסיכונים של יצירת אותם קודים גדלים פי כמה - במהלך השני שבו זמן המערכת "קופא" בערך כזה או אחר.

גרסה 2

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

גרסאות 3 ו-5

יש להם הרבה במשותף: הם משתמשים בשמות ושמות ייחודיים (ממרחב MD5) כדי ליצור קודים, כלומר, ערכים לא אקראיים. רק גרסה 3 משתמשת ב-hash רגיל, בעוד שגרסה 5 משתמשת ב-hash SHA-1. מזהים כאלה פחות תלויים במשתנים אקראיים.

גרסה 4

היצירה של גרסת UUID זו היא יותר מ-90% אקראית. יש לו 6 סיביות לערכים קבועים ו-122 לערכים שרירותיים. היישום של האלגוריתם הוא ש-128 סיביות של מידע נוצרות תחילה באופן אקראי, ו-6 מהן מוחלפות בנתוני גרסה וגרסה.

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

אפשרויות UUID

ה-UUID הייחודי שוכלל מספר פעמים עם התפתחות טכנולוגיית המחשב, וכיום הוא מוצג במספר גרסאות.

אפשרות 0

תוכנן לעבוד עם מסדי נתונים מדור קודם של Apollo Network Computing System 1.5 1988. אפשרות זו תואמת אותם לאחור ואינה מתנגשת עם UUIDs היסטוריים של NCS.

אפשרויות 1 ו-2

משמש לזיהוי בלוקים ומערכים של נתונים מודרניים, ובצורת טקסט קנונית הם אינם שונים זה מזה, למעט סדר כתיבת סיביות הווריאציות. אז אפשרות 1 משתמשת בסדר בתים של big-endian, ואפשרות 2 משתמשת ב-title-endian. הראשון הוא הראשי, והשני שמור לעבודה עם GUIDs מוקדמים מ-Microsoft Windows.

אפשרות 3

כרגע אינו בשימוש. זוהי גרסה שמורה לשימוש עתידי - כאשר מיצו את האפשרויות של האפשרויות הקודמות.

רוב המערכות מקודדות את המזהה ב-big-endian, אבל יש יוצאים מן הכלל. לדוגמה, ה-Marshaling בספריות COM/OLE של Microsoft משתמש ב-mixed-endian תוך יצירת קוד מהבלוקים title-endian ו-big-endian. הראשון הוא שלושת הרכיבים הראשונים של ה-UUID, והשני הוא השניים האחרונים.