סריאליזציה של מזהה ייחודי

Guy Yafe

New member
סריאליזציה של מזהה ייחודי

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

BravoMan

Active member
אני לא חושב שקיים סטנדרט מתועד ממש, אבל בכל

מקום בו נתקלתי בצורך להציג UUID מסוג כלשהו בצורה טקסטואלית, נהוג היה לעשות אחד מהשניים:
&nbsp
1. להשתמש ב-base כלשהו, לא בהכרח 64.
למשל, BitCoin משתמשים ב-Base58 שהוא דומה ל-64 אבל מעיף כמה סימנים בעייתיים לבני אדם.
https://en.wikipedia.org/wiki/Base58
&nbsp
לדעתי הוא גם עדיף כפרמטר ב-URL כי אין שם תווים שדורשים קידוד מיוחד כמו סימן שווה.
&nbsp
2. פשוט לכתוב את ייצוג ההקסה.
היות וכל בית נכנס בול ב-2 ספרות הקסדצימליות, ניתן עבור כל מספר בינארי בגודל קבוע (מבחינת בתים) לקבל מחרוזת קריאה לבני אדם באורך קבוע שגם קלה לפרסור עבור מחשבים.
&nbsp
היתרון בשיטה שכמות הסימנים השונים שמרכיבים את המחרוזת מאוד מצומצמת (16 בסה"כ), וגם קל מאוד לחשב את האורך המקודד, מה שחוסך מקרי קצה ומקל על וולידציה של הקלט.
 

Guy Yafe

New member
תודה

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

eladts

New member
המקרה השני הוא מקרה פרטי של הראשון

הקסדצימלי זה פשוט בסיס 16.
 
למעלה